From 86c57ffcf5ec23436745c1cc9edd7180be417ba5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 16 Dec 2015 18:31:05 +0000 Subject: [PATCH] Prepare for home/: move dots=, change uses of $dot to $ours and provide $linktarget. (nfc) --- infra/makelinks | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/infra/makelinks b/infra/makelinks index 6bcf4d9..dd167d3 100755 --- a/infra/makelinks +++ b/infra/makelinks @@ -33,8 +33,6 @@ esac mode=$1; shift -dots=$( find dot -mindepth 1 -maxdepth 1 -name '[0-9a-zA-Z]*[0-9a-zA-Z]' ) - basepath=$(pwd) basepath=${basepath#$HOME/} @@ -74,36 +72,40 @@ with_log () { "$@" } +dots=$( find dot -mindepth 1 -maxdepth 1 -name '[0-9a-zA-Z]*[0-9a-zA-Z]' ) + for dot in $dots; do + ours="$dot" underhome=".${dot#dot/}" inhome="$HOME/$underhome" prhome="~/$underhome" - if [ "$inhome" -ef "$dot" ]; then + linktarget="$basepath/$ours" + if [ "$inhome" -ef "$ours" ]; then good "already symlinked here" elif [ -h "$inhome" ]; then bad "wrong symlink target" elif ! [ -e "$inhome" ]; then needs setup "absent here" $act ln -s "$basepath/$dot" "$inhome" - elif [ -f "$inhome" ] && [ -f "$dot" ]; then - if cmp -s "$dot" "$inhome"; then + elif [ -f "$inhome" ] && [ -f "$ours" ]; then + if cmp -s "$ours" "$inhome"; then needs setup "identical here but not yet symlinked" $act rm -f "$inhome"~ - $act ln -s "$basepath/$dot" "$inhome"~ + $act ln -s "$linktarget" "$inhome"~ $act mv -f "$inhome"~ "$inhome" else needs import "modified here" - $act rm -f "$dot"~ - $act cp "$inhome" "$dot"~ - $act mv -f "$dot"~ "$dot" + $act rm -f "$ours"~ + $act cp "$inhome" "$ours"~ + $act mv -f "$ours"~ "$ours" fi - elif [ -d "$inhome" ] && [ -d "$dot" ]; then + elif [ -d "$inhome" ] && [ -d "$ours" ]; then needs dirimport "directory here not yet symlinked" - $act mv "$dot" "$dot~" - $act ln -s "$basepath/$dot" "$inhome"~ - $act mv "$inhome" "$dot" + $act mv "$ours" "$ours~" + $act ln -s "$linktarget" "$inhome"~ + $act mv "$inhome" "$ours" $act mv "$inhome~" "$inhome" - $act rm -rf "$dot~" + $act rm -rf "$ours~" else bad "mismatched file types" fi -- 2.30.2