diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-04 22:34:25 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-06-04 22:34:25 +0100 |
commit | a6a23d340309c4bb628b65df8082a416db6a053a (patch) | |
tree | 6fb75fec7a0337d51279e421a2a9eac44938de8a /install | |
parent | 2042ca0b7bb2733d0204c37a5e160fcaa385a5ea (diff) | |
download | dotfiles-a6a23d340309c4bb628b65df8082a416db6a053a.tar.gz dotfiles-a6a23d340309c4bb628b65df8082a416db6a053a.zip |
Adding Haskell install script
Diffstat (limited to 'install')
-rwxr-xr-x | install | 54 |
1 files changed, 54 insertions, 0 deletions
@@ -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" |