Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 1st, 2012  |  syntax: None  |  size: 0.76 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/bash -x
  2.  
  3. # describe symlink destination as ["#]file: .foo, assume $HOME
  4.  
  5. for file in dot.*; do
  6.   dest=`grep '^[\"\#\/].*.file:' "$file"|gawk -F'[:[:space:]]' '{print \$3}'`
  7.   dest=$(eval echo $dest)
  8.   destdir=${dest%/*}
  9.  
  10.   if [ "$destdir" != "$dest" -a ! -d "${HOME}/${destdir}" ]; then
  11.     #echo "mkdir $HOME/$destdir"
  12.     mkdir -p "${HOME}/${destdir}"
  13.   fi
  14.  
  15.   lwd=${PWD#$HOME/}
  16.  
  17.   if [ -r "${HOME}/${dest}" -o -L "${HOME}/${dest}" ]; then
  18.     if ! cmp -s "$file" "${HOME}/${dest}"; then
  19.       mv "${HOME}/${dest}" "${HOME}/${dest}.orig"
  20.     else
  21.       rm "${HOME}/${dest}"
  22.     fi
  23.   fi
  24.  
  25.   linktarget=${dest//[^\/]/}
  26.   linktarget=${linktarget//\//..\/}
  27.  
  28.   echo  "${HOME}/${dest} -> ${linktarget}${lwd}/$file"
  29.   ln -s "${linktarget}${lwd}/$file" "${HOME}/${dest}"
  30. done