summaryrefslogtreecommitdiffstats
path: root/install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'install.sh')
-rw-r--r--install.sh49
1 files changed, 40 insertions, 9 deletions
diff --git a/install.sh b/install.sh
index ce12503..6d794b3 100644
--- a/install.sh
+++ b/install.sh
@@ -1,26 +1,57 @@
+# THIS IS CURRENTLY EXPERIMENTAL. REVIEW AND TEST FIRST. NEVER RUN ON MAIN
+# MACHINE WITHOUT A BACKUP OF VIMFILES AND DOTFILES
+
+
# Links configuration files to the ones listed here. Backup and remove your's
-# and then run this script (while inside repo directory).
+# and then run this script while inside repo directory.
+#
+# In Windows it has to be run with git-bash.
#
# Note: This solution is lazy and causes some problems. Like not being able to
# track vim pluggins.
-# bash
-ln -s ${PWD}/profile ~/.profile
-ln -s ${PWD}/bash_aliases ~/.bash_aliases
-ln -s ${PWD}/bashrc ~/.bashrc
-ln -s ${PWD}/inputrc ~/.inputrc
+# Config
+# ======
+
+platform="linux" # linux,windows
+mode="copy" # copy,slink
+
+
+# Auto config
+# ===========
+
+# Append ~ later (bash only does 1 substitution of variables)
+if [[ $platform = "linux" ]]; then
+ VIMFILES=".vim"
+elif [[ $platform = "windows" ]]; then
+ VIMFILES="vimfiles"
+fi
+
+[[ $mode = "copy" ]] && cp_or_ln="cp"
+[[ $mode = "slink" ]] && cp_or_ln="ln -s"
+
+
+# Commands
+# ========
+
+# bash ( eval concatenates and executes)
+
+eval $cp_or_ln " ${PWD}/profile ~/.profile"
+eval $cp_or_ln " ${PWD}/bash_aliases ~/.bash_aliases"
+eval $cp_or_ln " ${PWD}/bashrc ~/.bashrc"
+eval $cp_or_ln " ${PWD}/inputrc ~/.inputrc"
# vim
# ~/.vimrc takes priority over ~/.vim/vimrc, so remove the former first
-[ -d ~/.vim/ ] || mkdir -p ~/.vim/{undo,swap,backup,plugins}
+[ -d ~/.vim/ ] || mkdir -p ~/$VIMFILES/{undo,swap,backup,plugins}
chmod 0700 ~/.vim/swap # swap files should only be readable by owner
-ln -s ${PWD}/vim/vimrc ~/.vim/vimrc
-ln -s ${PWD}/vim/fun.vim ~/.vim/fun.vim
+eval $cp_or_ln " ${PWD}/vim/vimrc ~/$VIMFILES/vimrc"
+eval $cp_or_ln " ${PWD}/vim/fun.vim ~/$VIMFILES/fun.vim"
# done