chiark / gitweb /
document how to use
[nailing-cargo.git] / fucking-cargo
index fc76d7a660b665d7c23717db81257fe65760add3..2c31cf782fac6f3ffe3e52994c9a2b1725ef253e 100755 (executable)
@@ -1,6 +1,8 @@
 #!/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 \
@@ -46,17 +48,25 @@ trap '
                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
-       echo >&2 Fucked $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
 
 "$@"