
Untitled
By: a guest on
Jul 1st, 2012 | syntax:
None | size: 0.76 KB | hits: 12 | expires: Never
#!/bin/bash -x
# describe symlink destination as ["#]file: .foo, assume $HOME
for file in dot.*; do
dest=`grep '^[\"\#\/].*.file:' "$file"|gawk -F'[:[:space:]]' '{print \$3}'`
dest=$(eval echo $dest)
destdir=${dest%/*}
if [ "$destdir" != "$dest" -a ! -d "${HOME}/${destdir}" ]; then
#echo "mkdir $HOME/$destdir"
mkdir -p "${HOME}/${destdir}"
fi
lwd=${PWD#$HOME/}
if [ -r "${HOME}/${dest}" -o -L "${HOME}/${dest}" ]; then
if ! cmp -s "$file" "${HOME}/${dest}"; then
mv "${HOME}/${dest}" "${HOME}/${dest}.orig"
else
rm "${HOME}/${dest}"
fi
fi
linktarget=${dest//[^\/]/}
linktarget=${linktarget//\//..\/}
echo "${HOME}/${dest} -> ${linktarget}${lwd}/$file"
ln -s "${linktarget}${lwd}/$file" "${HOME}/${dest}"
done