diff --git a/install.sh b/install.sh index 49c67a4..ea84008 100755 --- a/install.sh +++ b/install.sh @@ -1,30 +1,39 @@ #!/bin/sh SCRIPT=$(readlink -f "$0") -SCRIPTPATH=$(dirname "$SCRIPT") +RC_PATH=$(dirname "$SCRIPT") HOST=$(hostname) +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} # List of the config files to install FILES="vimrc zshrc gitconfig vim gitignore_global git_user ctags.d" +CONF_DIR="config" if [ ! -e "$HOME/.git_user" ]; then - cp "$SCRIPTPATH/git_user.def" "$SCRIPTPATH/git_user" - sed -i -e "s/{username}/$USER/" "$SCRIPTPATH/git_user" - sed -i -e "s/{email}/$USER@$HOST/" "$SCRIPTPATH/git_user" + cp "$RC_PATH/git_user.def" "$RC_PATH/git_user" + sed -i -e "s/{username}/$USER/" "$RC_PATH/git_user" + sed -i -e "s/{email}/$USER@$HOST/" "$RC_PATH/git_user" fi # Init or update submodules -cd "$SCRIPTPATH" +cd "$RC_PATH" git submodule update --init --recursive -cd - +cd - > /dev/null # Setup fast-syntax-highlighting theme customization -cp "$SCRIPTPATH/fsh_theme.zsh" "$SCRIPTPATH/fast-syntax-highlighting/current_theme.zsh" +cp "$RC_PATH/fsh_theme.zsh" "$RC_PATH/fast-syntax-highlighting/current_theme.zsh" # Create symbolic links in the user's home dir for file in $FILES do if [ ! -e "$HOME/.${file}" ]; then - ln -s "${SCRIPTPATH}/${file}" "$HOME/.${file}" + ln -s "${RC_PATH}/${file}" "$HOME/.${file}" + # Only warn if an actual file exist, else we suppose it is from a previous install + elif [ ! -L "$HOME/.$file" ]; then + >&2 echo "File $HOME/.$file exists. Keeping old version." fi done + +mkdir -p $XDG_CONFIG_HOME +find $RC_PATH/$CONF_DIR -mindepth 1 -maxdepth 1 -type d \ + -exec sh -c "ln -s -t \"$XDG_CONFIG_HOME\" \"{}\" 2> /dev/null || ( link=$XDG_CONFIG_HOME/"'$(basename "{}")'"; test -L "'$link'" || >&2 echo \"Folder "'$link'" exists. Keeping old version.\")" \;