--- /dev/null
+#!/bin/bash
+set -e
+
+lock=${PWD%/*}/.fuck.lock
+if [ "x$FUCKING_CARGO" != "x$lock" ]; then
+ FUCKING_CARGO=$lock \
+ exec with-lock-ex -w "$lock" "$0" "$@"
+fi
+
+exec 3<../Fuck
+f=Cargo.toml
+
+sed='
+/^ *\[dependencies\]/,/^ \[/{
+'
+
+exec 4<../Fuck
+while read <&4 what where; do
+ sed+=' s/^$what *=/$what = { path = ../'"${where//\//\\/}"' }
+'
+done
+sed+='}
+'
+
+exec 4<../Fuck
+while read <&4 what where; do
+ wf=../$where/$f
+ rm -f $wf.fucking~
+ sed <$wf >$wf.fucking~
+done
+
+exec 4<../Fuck
+while read <&4 what where; do
+ wf=../$where/$f
+ if ! test -e $wf.unfucked~; then
+ ln $wf $wf.unfucked~
+ fi
+done
+
+trap '
+ set +e
+ while read <&3 what where; do
+ wf=../$where/$f
+ if test -e $wf.unfucked~; then
+ rm -f $wf.fucked~
+ ln $wf $wf.fucked~
+ mv $wf.unfucked~ $wf.unfucked~
+ fi
+ done
+' EXIT
+
+exec 4<../Fuck
+while read <&4 what where; do
+ wf=../$where/$f
+ rm $wf.fucked~
+ mv -f $wf.fucking~ $wf
+done
+
+"$@"