c1bf5f804785a69cf1efa92a09bd5fe92ed02d27
[laserbrain_demo] / tools / prepare_data
1 #!/bin/sh
2
3 indir=datasrc
4 descfile=$indir/datadesc
5 outdir=data
6 filter=$1
7
8 process()
9 {
10     src_path=$1
11     dst_path=$2
12     op=$3
13
14     cmd=$(echo $op | sed 's/<SRC>/$src_path/g;s/<DST>/$dst_path/g')
15     export src_path
16     export dst_path
17     if ! eval $cmd; then
18                 fname=$(basename $src_path)
19                 echo "Failed to process data file $fname" >&2
20                 echo "Command line was: \"$cmd\""
21                 exit 1
22         fi
23 }
24
25 copy()
26 {
27         src_path=$1
28         dst_path=$2
29
30         if ! cp $src_path $dst_path; then
31                 fname=$(basename $src_path)
32                 echo "Failed to copy data file $fname" >&2
33                 exit 1
34         fi
35 }
36
37 if [ -z "$filter" ]; then
38         filter='.*'
39 fi
40
41 mkdir -p $outdir
42
43 while read line; do
44     line=$(echo $line | sed 's/#.*$//' | grep "$filter")
45     if [ -n "$line" ]; then
46         path=$(echo $line | awk -F : '{ print $1; }')
47         fname=$(basename $path)
48         op=$(echo $line | awk -F : '{ print $2; }' | xargs)
49
50         if [ "$op" = nop ]; then
51             echo copying $fname
52             mkdir -p $outdir/$(dirname $path)
53             copy $indir/$path $outdir/$path
54         else
55             echo processing $fname
56             mkdir -p $outdir/$(dirname $path)
57             process $indir/$path $outdir/$path "$op"
58         fi
59     fi
60 done <$descfile