fixed tools/prepare_data to also perform the conversion if the
[laserbrain_demo] / tools / prepare_data
index 76ced9f..a7f1eb4 100755 (executable)
@@ -3,6 +3,8 @@
 indir=datasrc
 descfile=$indir/datadesc
 outdir=data
+filter=$1
+force_update=false
 
 process()
 {
@@ -33,23 +35,44 @@ copy()
        fi
 }
 
+for arg; do
+       case "$arg" in
+       -f)
+               force=true
+               ;;
+       esac
+done
+
+if [ -z "$filter" ]; then
+       filter='.*'
+fi
+
 mkdir -p $outdir
 
 while read line; do
-    line=$(echo $line | sed 's/#.*$//')
+    line=$(echo $line | sed 's/#.*$//' | grep "$filter")
     if [ -n "$line" ]; then
         path=$(echo $line | awk -F : '{ print $1; }')
         fname=$(basename $path)
         op=$(echo $line | awk -F : '{ print $2; }' | xargs)
 
-        if [ "$op" = nop ]; then
-            echo copying $fname
-            mkdir -p $outdir/$(dirname $path)
-            copy $indir/$path $outdir/$path
-        else
-            echo processing $fname
-            mkdir -p $outdir/$(dirname $path)
-            process $indir/$path $outdir/$path "$op"
-        fi
+               infile=$indir/$path
+               outfile=$outdir/$path
+
+               if $force_update; then
+                       touch "$infile"
+               fi
+
+               if [ \( ! -f "$outfile" \) -o \( "$infile" -nt "$outfile" \) ]; then
+                       if [ "$op" = nop ]; then
+                               echo copying $fname
+                               mkdir -p $outdir/$(dirname $path)
+                               copy $indir/$path $outdir/$path
+                       else
+                               echo processing $fname
+                               mkdir -p $outdir/$(dirname $path)
+                               process $indir/$path $outdir/$path "$op"
+                       fi
+               fi
     fi
 done <$descfile