48 lines
980 B
Bash
Executable File
48 lines
980 B
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ -z "$1" ]
|
|
then echo provide the script to run
|
|
exit 1
|
|
fi
|
|
|
|
JOBPATH="$( pwd )/.slurpies"
|
|
mkdir -p "$JOBPATH"
|
|
JOBNAME=job_$( date +"%y%m%d%H%M%S%N" )
|
|
JOBFILE="$JOBPATH/$JOBNAME"
|
|
DONEFILE="$JOBPATH/$JOBNAME.done"
|
|
COMPPATH=$3
|
|
|
|
echo Job: $JOBFILE
|
|
echo "#!/bin/sh" > "$JOBFILE"
|
|
for (( i=1; i<=$#; i++ ))
|
|
do if [ $i -eq 5 ]
|
|
then echo -n \" >> "$JOBFILE"
|
|
eval echo -n ${!i} | sed s,\",\\\\\",g >> "$JOBFILE"
|
|
echo -n "\" " >> "$JOBFILE"
|
|
elif [ $i -eq 6 ]
|
|
then echo -n ${!i} >> "$JOBFILE"
|
|
else echo -n "\"${!i}\" " >> "$JOBFILE"
|
|
fi
|
|
done
|
|
echo "" >> "$JOBFILE"
|
|
echo 'find "'$COMPPATH'" > "'$DONEFILE'"' >> "$JOBFILE"
|
|
chmod 775 "$JOBFILE"
|
|
slurp "$JOBFILE"
|
|
sleep 1
|
|
# pause to make sure NFS has time to sync
|
|
while [ ! -e "$DONEFILE" ]
|
|
do sleep 5
|
|
done
|
|
DONE=0
|
|
IFS=$'\n'
|
|
while [ $DONE -eq 0 ]
|
|
do sleep 10
|
|
DONEITER=1
|
|
for f in $( cat "$DONEFILE" )
|
|
do [[ -a "$f" ]] || DONEITER=0
|
|
done
|
|
[[ $DONEITER -eq 1 ]] && DONE=1
|
|
done
|
|
|
|
|