Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
20 | reyssat | 1 | #! /bin/sh |
2 | # |
||
3 | # Generate thumbnail pictures |
||
4 | |||
5 | cd `dirname $0` |
||
6 | home=`pwd` |
||
7 | whome=../../../.. |
||
8 | |||
9 | flydraw=$whome/other/bin/flydraw |
||
10 | slib_textsize=tiny |
||
11 | index=.index |
||
12 | |||
13 | list=`ls [1-9]*/*.data | sed 's/\.data$//'` |
||
14 | |||
15 | for circ in $list; do |
||
16 | if [ ! -s $circ.gif ] || [ $circ.data -nt $circ.gif ] || [ mkthumbs -nt $circ.gif ]; then |
||
17 | echo "Generating $circ.gif" |
||
18 | range=`awk 'BEGIN {rec=0}; |
||
19 | /^:/ {rec++}; |
||
20 | rec>2 {exit}; |
||
21 | rec==2 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data` |
||
22 | pairs=`echo "$range" | tr '()[]' '@@@@' | cut -s -d@ -f2 | tr ',' ' '` |
||
23 | if [ -z "$pairs" ]; then |
||
24 | pairs=`echo "$range" | cut -s -d, -f4 | tr ',' ' '` |
||
25 | fi |
||
26 | pos1=`awk 'BEGIN {rec=0}; |
||
27 | /^:/ {rec++}; |
||
28 | rec>3 {exit}; |
||
29 | rec==3 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data` |
||
30 | pos=`echo "$pos1" |\ |
||
31 | awk -F, 'NF>3 {print "point "$1","$2",grey"; |
||
32 | if(NF>5) print "linewidth 1"; |
||
33 | for(i=6;i<=NF;i++) { |
||
34 | if($i>=1 || $i<=-1) { |
||
35 | if($5==0) printf("line %g,%g,%g,%g,grey\n", |
||
36 | $1+$i,$2,$1,$2); |
||
37 | else printf("line %g,%g,%g,%g,grey\n", |
||
38 | $1,$2+$i,$1,$2); |
||
39 | } |
||
40 | } |
||
41 | if(NF>5) print "linewidth 7"; |
||
42 | }'` |
||
43 | pairing= |
||
44 | for p in $pairs; do |
||
45 | pair1=`echo "$pos1" | awk -F, 'FNR == '$p' { |
||
46 | if($5==0) {x1=$1+1;x2=$1+2;y1=y2=$2;} |
||
47 | else {x1=x2=$1;y1=$2-1;y2=$2-2;}; |
||
48 | printf "line %d,%d,%d,%d,grey\n", |
||
49 | x1,y1,x2,y2; |
||
50 | exit; |
||
51 | }'` |
||
52 | pairing="$pairing$pair1 |
||
53 | " |
||
54 | done |
||
55 | wire=`awk 'BEGIN {rec=0}; |
||
56 | /^:/ {rec++}; |
||
57 | rec>4 {exit}; |
||
58 | rec==4 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data |\ |
||
59 | sed 's/_color_/black/g'` |
||
60 | dots=`awk 'BEGIN {rec=0}; |
||
61 | /^:/ {rec++}; |
||
62 | rec>5 {exit}; |
||
63 | rec==5 {if(substr($0,1,1)==":") print substr($0,2); else print};' $circ.data` |
||
64 | xrange=`echo $range | cut -d, -f1` |
||
65 | yrange=`echo $range | cut -d, -f2` |
||
66 | xsize=`expr 4 \* $xrange` |
||
67 | ysize=`expr 4 \* $yrange` |
||
68 | [ -n "$dots" ] && dots="points black,$dots" |
||
69 | $flydraw <<@ |
||
70 | new $xsize,$ysize |
||
71 | xrange 0,$xrange |
||
72 | yrange 0,$yrange |
||
73 | fill 1,1,white |
||
74 | linewidth 7 |
||
75 | $pos |
||
76 | linewidth 1 |
||
77 | $pairing |
||
78 | $wire |
||
79 | linewidth 4 |
||
80 | $dots |
||
81 | output $circ.gif |
||
82 | @ |
||
83 | fi |
||
84 | done |
||
85 |