diff options
author | Jakob Odersky <jakob@odersky.com> | 2016-01-22 16:33:56 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2016-01-22 16:33:56 -0800 |
commit | a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4 (patch) | |
tree | 7de429548930e5ff8ac2eab0bec7a5ba8b45641e /updatedots | |
parent | 3bb095489180f8c6e20197d534d7ce1406ca8a18 (diff) | |
download | dotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.tar.gz dotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.tar.bz2 dotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.zip |
Improve backup in updatedots
Diffstat (limited to 'updatedots')
-rwxr-xr-x | updatedots | 25 |
1 files changed, 14 insertions, 11 deletions
@@ -31,39 +31,42 @@ create_links() { mkdir "$BACKUPDIR" fi if [ -n "$(ls -A $BACKUPDIR)" ]; then - echo "Backup directory $BACKUPDIR is not empty. Local files could be lost. Aborting." >&2 + echo "Backup directory $BACKUPDIR is not empty, local files could be lost." >&2 + echo "Aborting." >&2 exit 1 fi - + local moved=0 - + echo "*** Linking dotfiles from $(realpath $DOTDIR) to $HOMEDIR ***" for relative in $RDOTFILES; do local src=$DOTDIR/$relative local dest=$HOMEDIR/$relative - echo -n "$dest: " - + # backup destination (if the file already exists and is backed up) + local bdest=$BACKUPDIR/$relative + mkdir -p $(dirname "$dest") if [ -e "$dest" ] && [ $(readlink -f "$dest") = $(readlink -f "$src") ]; then - echo "nothing to be done" + echo "Nothing to be done for $relative" else if [ -e "$dest" ]; then - mv "$dest" "$BACKUPDIR/$file" + mkdir -p $(dirname "$bdest") + mv "$dest" "$bdest" moved=1 - echo -n "saved original, " - fi + echo "Backed up original $relative to $bdest" + fi $LINK "$src" "$dest" - echo "linked" + echo "Linked $relative" fi done echo "*** Finished linking dotfiles ***" echo if [ "$moved" -gt 0 ]; then - echo "WARNING: some local files were moved to $BACKUPDIR" >&2 + echo "WARNING: some files were moved to $BACKUPDIR" >&2 fi } |