P=patches.lsub.org S=sources.lsub.org M=nix@lsub.org PD=/n/$P/patch SD=/n/$S/nix fn fail { echo $* >[1=2] exit $"* } fn mountfs { if(! test -d $PD || ! test -d $SD){ rm -f /srv/^($P $S) test -d $PD || 9fs $P || fail no patch dir test -d $SD || 9fs $S || fail no nix dir } } fn mkuniq { uniq=`{basename $2} u=$uniq n=1 while(test -e $1/$uniq){ uniq=$u.$n n=`{echo 1+$n | hoc} } echo $uniq } fn cpfile { if(! test -e $1){ echo $1 does not exist >failed ; cat failed>[1=2] } if(test -f $1) cp -x $1 $2 || { echo cp $1 $2: $status> failed ; cat failed>[1=2]} if(test -d $1){ mkdir -p $2 || { echo mkdir $2: $status> failed ; cat failed>[1=2]} rm -rf $2/* dircp $1 $2 || { echo dircp $1 $2: $status> failed ; cat failed>[1=2]} } status='' } fn must { $* || fail $* }