From 26d65646ef50a4a86ba67f352618682d6b764283 Mon Sep 17 00:00:00 2001 From: ville rantanen Date: Fri, 5 Jul 2013 16:27:34 +0300 Subject: [PATCH] Remote executor for slurp --- slurpy | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 slurpy diff --git a/slurpy b/slurpy new file mode 100755 index 0000000..abfd213 --- /dev/null +++ b/slurpy @@ -0,0 +1,47 @@ +#!/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 + +