#!/bin/bash
set -e
+# CARGO='../fucking-cargo/fucking-cargo cargo' make && make check CARGO='../fucking-cargo/fucking-cargo cargo'
+
lock=${PWD%/*}/.fuck.lock
if [ "x$FUCKING_CARGO" != "x$lock" ]; then
FUCKING_CARGO=$lock \
exec 4<../Fuck
while read <&4 what where; do
- sed+=' s/^$what *=/$what = { path = ../'"${where//\//\\/}"' }
+ if [ "x$what" = x- ]; then continue; fi
+ qwhere="${where//\//\\/}"
+ sed+=' s/^'$what' *=.*/'$what' = { path = "..\/'"${qwhere}"'" }/;
'
done
sed+='}
while read <&4 what where; do
wf=../$where/$f
rm -f $wf.fucking~
- sed <$wf >$wf.fucking~
+ sed <$wf >$wf.fucking~ "$sed"
done
exec 4<../Fuck
if test -e $wf.unfucked~; then
rm -f $wf.fucked~
ln $wf $wf.fucked~
- mv $wf.unfucked~ $wf.unfucked~
+ mv -f $wf.unfucked~ $wf
fi
done
+ echo >&2 'Unfucked'
' EXIT
exec 4<../Fuck
+printf >&2 'Fucking'
while read <&4 what where; do
wf=../$where/$f
- rm $wf.fucked~
- mv -f $wf.fucking~ $wf
+ printf >&2 ' %s' "$what"
+ if cmp -s $wf.fucked~ $wf.fucking~; then
+ mv -f $wf.fucked~ $wf
+ rm -f $wf.fucking
+ else
+ mv -f $wf.fucking~ $wf
+ rm -f $wf.fucked
+ fi
done
+echo >&2
"$@"