diff options
Diffstat (limited to 'bin/rcup')
-rwxr-xr-x | bin/rcup | 52 |
1 files changed, 27 insertions, 25 deletions
@@ -15,28 +15,28 @@ link_or_copy() { } link_file() { - local src=$1 - local dest=$2 + local src="$1" + local dest="$2" local sigil=$3 - if [ -h $dest ]; then - $RM -f $dest + if [ -h "$dest" ]; then + $RM -f "$dest" fi action=`link_or_copy $sigil` $DEBUG "$action $src $dest" - $action $src $dest + $action "$src" "$dest" } replace_file() { - local src=$1 - local dest=$2 + local src="$1" + local dest="$2" local sigil=$3 - $DEBUG replace_file $1 $2 $3 - + $DEBUG replace_file "$1" "$2" $3 + $RM -rf $dest - link_file $src $dest $sigil + link_file "$src" "$dest" $sigil } is_nested() { @@ -49,39 +49,39 @@ is_identical() { } handle_dir() { - local dest=$1 + local dest="$1" $DEBUG handle_dir $1 - dirname $dest | xargs $MKDIR -p + dirname "$dest" | xargs $MKDIR -p } handle_file() { - local src=$1 - local dest=$2 + local src="$1" + local dest="$2" local sigil=$3 $DEBUG handle_file $1 $2 $3 if [ -e "$dest" ]; then - if is_identical $src $dest; then + if is_identical "$src" "$dest"; then $VERBOSE "identical $dest" elif [ $REPLACE_ALL -eq 1 ]; then - replace_file $src $dest $sigil + replace_file "$src" "$dest" $sigil else $PROMPT "overwrite ${dest}? [ynaq]" read overwrite case $overwrite in a) REPLACE_ALL=1 - replace_file $src $dest $sigil + replace_file "$src" "$dest" $sigil ;; - y) replace_file $src $dest $sigil ;; + y) replace_file "$src" "$dest" $sigil ;; q) exit 1 ;; *) $VERBOSE "skipping $dest" ;; esac fi else - link_file $src $dest $sigil + link_file "$src" "$dest" $sigil fi } @@ -165,20 +165,22 @@ handle_command_line $* run_hooks pre up +saved_ifs=$IFS +IFS=' +' for dest_and_src in `lsrc $LS_ARGS`; do - saved_ifs=$IFS IFS=: set $dest_and_src IFS=$saved_ifs - dest=$1 - src=$2 + dest="$1" + src="$2" sigil=$3 - if is_nested $dest; then - handle_dir $dest + if is_nested "$dest"; then + handle_dir "$dest" fi - handle_file $src $dest $sigil + handle_file "$src" "$dest" $sigil done run_hooks post up |