
This is a better location instead of having it in Documentation. Signed-off-by: Davidlohr Bueso <dave@gnu.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (fixed compile)
1.2 KiB
#! /bin/sh
set -e
PREFIX=$1 shift
trap 'rm -r $TMPDIR' 0
TMPDIR=mktemp -d
exec 3>/dev/null
for f; do
while IFS="
" read -r LINE; do
case "$LINE" in
$PREFIX:[0-9]:*)
NUM=echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"
if [ -f $TMPDIR/$NUM ]; then
echo "$TMPDIR/$NUM already exits prior to $f"
exit 1
fi
exec 3>>$TMPDIR/$NUM
echo $f | sed 's,../,,g' > $TMPDIR/.$NUM
/bin/echo "$LINE" | sed -e "s/$PREFIX:[0-9]//" -e "s/:*//" >&3
;;
$PREFIX:[0-9])
NUM=echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"
if [ -f $TMPDIR/$NUM ]; then
echo "$TMPDIR/$NUM already exits prior to $f"
exit 1
fi
exec 3>>$TMPDIR/$NUM
echo $f | sed 's,../,,g' > $TMPDIR/.$NUM
/bin/echo "$LINE" | sed "s/$PREFIX:[0-9]//" >&3
;;
:*)
/bin/echo "$LINE" | sed -e "s/:*/*/" -e "s,/**/,," >&3
echo >&3
exec 3>/dev/null
;;
*)
/bin/echo "$LINE" >&3
;;
esac
done < $f
echo >&3
exec 3>/dev/null
done
LASTFILE="" for f in $TMPDIR/*; do if [ "$LASTFILE" != $(cat $TMPDIR/.$(basename $f) ) ]; then LASTFILE=$(cat $TMPDIR/.$(basename $f) ) echo "[ $LASTFILE ]" fi cat $f done