#!/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 "$@"