Browse Source

sync2: made work

master
Alejandro Mery 13 years ago
parent
commit
d80bae795a
1 changed files with 24 additions and 4 deletions
  1. +24
    -4
      sync2.sh

+ 24
- 4
sync2.sh

@ -1,15 +1,35 @@
#!/bin/sh
info() { echo "$$ $*"; }
err() { echo "E: $$ $*" >&2; }
info() { echo "$$: $*"; }
err() { echo "E: $$: $*" >&2; }
FILES="$(pwd -P)"
for x; do
if [ -L "$x" ]; then
err "$x: symlinks not supported"
elif [ -d "$x" ]; then
true
true # skip dirs
elif [ -L "$HOME/$x" ]; then
d0="$(readlink "$HOME/$x")"
d1="$(echo "$FILES/$x" | sed -e 's,/\./,/,g')"
if [ "$d0" != "$d1" ]; then
err "$x: relinking, was [$d0]"
ln -snf "$d1" "$HOME/$x"
fi
else
info "[$x]"
d="$(dirname "$x")"
if [ ! -d "$HOME/$d/" ]; then
info "$d: creating dir"
mkdir -p "$HOME/$d/"
fi
d="$(echo "$FILES/$x" | sed -e 's,/\./,/,g')"
if [ -e "$HOME/$x" ]; then
info "$x: importing changes and linking"
cp -a "$HOME/$x" "$d"
else
info "$x: linking"
fi
ln -snf "$d" "$HOME/$x"
fi
done

Loading…
Cancel
Save