From b71aa0d9728f1eeabda814c35c5bd9bb67a20b9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Sat, 14 Sep 2013 16:00:46 +0200 Subject: [PATCH] Changed dotfile location and made path concatenation more robust. --- scripts/makesymlinks.bash | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/makesymlinks.bash b/scripts/makesymlinks.bash index e57b1ae..2f49000 100755 --- a/scripts/makesymlinks.bash +++ b/scripts/makesymlinks.bash @@ -1,23 +1,28 @@ #!/usr/bin/env bash # config directory -config_dir="$HOME/config/" +config_dir="$HOME/dotfiles/" # backup directory, files that would otherwise be overwritten go there -backup_dir="$HOME/oldconfig/" +backup_dir="$HOME/dotfiles.bak/" # the following folders inside $config_dir will be inspected and symlinked: symlink_folders="bash git i3 vim zsh" +path_combine() +{ + echo "$(dirname "$1")/$(basename "$1")/$(basename "$2")" +} + # backup the old config files backup_dir="$backup_dir/$(date +%Y-%m-%dT%H:%M:%S)" echo "Backing up old configuration files into \"$backup_dir\"." mkdir -p "$backup_dir" for folder in $symlink_folders ; do - for file in "$config_dir/$folder"/* ; do - oldfile="$HOME/.$(basename "$file")" + for file in "$(path_combine "$config_dir" "$folder")"/* ; do + oldfile="$(path_combine "$HOME" ".$(basename "$file")")" if [[ -e "$oldfile" ]] ; then - destination="$backup_dir/$(basename "$oldfile")" + destination="$(path_combine "$backup_dir" "$(basename "$oldfile")")" echo "mv: \"$oldfile\" -> \"$destination\"" mv "$oldfile" "$destination" else @@ -29,10 +34,10 @@ done # now symlink the files in $config_dir into the home directory echo "Creating symlinks for configuration files in \"$config_dir\"." for folder in $symlink_folders ; do - for file in "$config_dir/$folder"/* ; do - destination="$HOME/.$(basename "$file")" - echo "ln -s \"$file\" -> \"$destination\"" - ln -s "$file" "$destination" + for file in "$(path_combine "$config_dir" "$folder")"/* ; do + destination="$(path_combine "$HOME" ".$(basename "$file")")" + echo "ln -sf \"$file\" -> \"$destination\"" + ln -sf "$file" "$destination" done done