aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-06-04 22:34:25 +0100
committerYann Herklotz <ymherklotz@gmail.com>2018-06-04 22:34:25 +0100
commita6a23d340309c4bb628b65df8082a416db6a053a (patch)
tree6fb75fec7a0337d51279e421a2a9eac44938de8a
parent2042ca0b7bb2733d0204c37a5e160fcaa385a5ea (diff)
downloaddotfiles-a6a23d340309c4bb628b65df8082a416db6a053a.tar.gz
dotfiles-a6a23d340309c4bb628b65df8082a416db6a053a.zip
Adding Haskell install script
-rwxr-xr-xinstall54
-rw-r--r--install.sh14
2 files changed, 61 insertions, 7 deletions
diff --git a/install b/install
new file mode 100755
index 0000000..05aab42
--- /dev/null
+++ b/install
@@ -0,0 +1,54 @@
+#!/usr/bin/env runhaskell
+-- -*- haskell -*-
+
+import System.Directory ( removeFile
+ , doesFileExist
+ , createFileLink
+ , pathIsSymbolicLink
+ , copyFile
+ )
+
+remIf :: FilePath -> IO ()
+remIf dest = do
+ res <- doesFileExist dest
+ rem res dest
+ where
+ rem b dest
+ | b = removeFile dest
+ | otherwise = return ()
+
+forceOp :: (FilePath -> FilePath -> IO ()) -> FilePath -> FilePath -> IO ()
+forceOp op src dest = do
+ remIf dest
+ op fullSrc dest
+ where
+ fullSrc =
+
+forceCopy :: FilePath -> FilePath -> IO ()
+forceCopy = forceOp copyFile
+
+forceFileSymLink :: FilePath -> FilePath -> IO ()
+forceFileSymLink = forceOp createFileLink
+
+main :: IO ()
+main = do
+ putStrLn "Installing emacs config..."
+ forceCopy "./emacs/init.el" "~/.emacs.d/init.el"
+ forceFileSymLink "./emacs/loader.org" "~/.emacs.d/loader.org"
+
+ putStrLn "Installing X config..."
+ forceFileSymLink "./X/.Xmodmap" "~/.Xmodmap"
+ forceFileSymLink "./X/.Xresources" "~/.Xresources"
+ forceFileSymLink "./X/.xinitrc" "~/.xinitrc"
+
+ putStrLn "Installing tmux config..."
+ forceFileSymLink "./tmux/.tmux.conf" "~/.tmux.conf"
+
+ putStrLn "Installing i3 config..."
+ forceFileSymLink "./i3/config" "~/.config/i3/config"
+
+ putStrLn "Installing zsh config..."
+ forceFileSymLink "./zsh/.zshrc" "~/.zshrc"
+
+ putStrLn "Installing isync config..."
+ forceFileSymLink "./isync/.mbsyncrc" "~/.mbsyncrc"
diff --git a/install.sh b/install.sh
index 5d01955..9b5ca42 100644
--- a/install.sh
+++ b/install.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
EXTRA_OPTS=" -s "
@@ -18,24 +18,24 @@ function ln_configs {
ln $EXTRA_OPTS ${SCRIPT_DIR}/${1} $2
}
-echo "installing emacs config..."
+echo "Installing emacs config..."
cp ${current_dir}/emacs/init.el ~/.emacs.d/init.el
ln_configs emacs/loader.org ~/.emacs.d/loader.org
-echo "installing X config"
+echo "Installing X config..."
ln_configs X/.Xmodmap ~/.Xmodmap
ln_configs X/.Xresources ~/.Xresources
ln_configs X/.xinitrc ~/.xinitrc
-echo "installing tmux config"
+echo "Installing tmux config..."
ln_configs tmux/.tmux.conf ~/.tmux.conf
-echo "installing i3 config"
+echo "Installing i3 config..."
ln_configs i3/config ~/.config/i3/config
-echo "installing zsh config"
+echo "Installing zsh config..."
ln_configs zsh/.zshrc ~/.zshrc
ln_configs zsh/.zsh ~/.zsh
-echo "installing isync config"
+echo "Installing isync config..."
ln_configs isync/.mbsyncrc ~/.mbsyncrc