aboutsummaryrefslogtreecommitdiff
path: root/updatedots
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2016-01-22 16:33:56 -0800
committerJakob Odersky <jakob@odersky.com>2016-01-22 16:33:56 -0800
commita5a96d242ce85a5a8f8f0e61e646bb0631bcabb4 (patch)
tree7de429548930e5ff8ac2eab0bec7a5ba8b45641e /updatedots
parent3bb095489180f8c6e20197d534d7ce1406ca8a18 (diff)
downloaddotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.tar.gz
dotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.tar.bz2
dotfiles-a5a96d242ce85a5a8f8f0e61e646bb0631bcabb4.zip
Improve backup in updatedots
Diffstat (limited to 'updatedots')
-rwxr-xr-xupdatedots25
1 files changed, 14 insertions, 11 deletions
diff --git a/updatedots b/updatedots
index ab7a168..a4d1299 100755
--- a/updatedots
+++ b/updatedots
@@ -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
}