diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/rcdn | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -3,6 +3,20 @@ : ${RCM_LIB:=`dirname $0`/../share/rcm} . $RCM_LIB/rcm.sh +remove_link() { + local dest=$1 + local original=$2 + + if [ x$dest = "x/" ]; then + $VERBOSE "not a symlink, skipping: $original" + elif [ -L $dest ]; then + $RM -rf $dest + rmdir -p `dirname $original` 2>/dev/null + else + remove_link `dirname $dest` $original + fi +} + handle_command_line() { local arg_tags= local verbosity=0 @@ -58,6 +72,5 @@ for dest_and_src in `lsrc $LS_ARGS`; do dest=`echo $dest_and_src | sed 's/:.*//'` src=`echo $dest_and_src | sed 's/.*://'` - $RM -rf $dest - rmdir -p `dirname $dest` 2>/dev/null + remove_link $dest $dest done |