From 586ac36478fdd8f0d23c654cd9011318a22a8722 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Sat, 27 Jun 2009 10:56:07 +0000 Subject: Make relative symlinks git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@399 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede --- Link-Them | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'Link-Them') diff --git a/Link-Them b/Link-Them index d27920d..19a9c28 100755 --- a/Link-Them +++ b/Link-Them @@ -1,15 +1,29 @@ -#!/bin/sh +#!/bin/bash set -e cd "`dirname $0`" -DATE="`date +'%Y%m%d'`" -DIR="`pwd`" +date="`date +'%Y%m%d'`" +dir="`pwd`" +if [ "$dir" = "$HOME" ]; then + relpath="" +else + relpath="${dir##$HOME/}/" +fi for file in bash_profile bashrc screenrc vimrc zshrc zshfunc; do + if [ -L "$HOME/.$file" ]; then + if [ "$(readlink "$HOME/.$file")" = "$dir/$file" ]; then # old style symlink, remove + rm -v -f "$HOME/.$file" + fi + fi if ! [ -L "$HOME/.$file" ]; then - [ -e "$HOME/.$file" ] && mv "$HOME/.$file" "$HOME/.$file-$DATE" - ln -s "$DIR/$file" "$HOME/.$file" + if [ -e "$HOME/.$file" ]; then + mv "$HOME/.$file" "$HOME/.$file-$date" + elif [ -L "$HOME/.$file" ]; then # dangling symlink + rm -f "$HOME/.$file" + fi + ln -v -s "$relpath$file" "$HOME/.$file" fi done -- cgit v1.2.3