source: roaraudio/compbins/ast2roar @ 3498:f31b5f6d5483

Last change on this file since 3498:f31b5f6d5483 was 3498:f31b5f6d5483, checked in by phi, 14 years ago

support ARGS_ENV_OPTS, fixed bug with non-option arg

  • Property exe set to *
File size: 1.9 KB
Line 
1#!/bin/sh
2
3OUT="$1"
4IN="$2"
5
6[ -r $IN ] || exit 1;
7
8. ./$IN
9
10{
11 echo '#!/bin/sh'
12 echo
13
14 echo "_args='$ARGS_ADD_OPTS';"
15 cat <<_E_O_F_
16
17while [ -n "\$1" ]
18do
19 k="\$1";
20 shift;
21
22 case "\$k" in
23  '--')
24   break;
25  ;;
26_E_O_F_
27
28 for o in $ARGS_IGNORE_OPTS
29 do
30  on=`echo $o | cut -d: -f1`
31  oa=`echo $o | cut -d: -f2`
32  echo "  '$on')";
33  if $oa
34  then
35   echo '   shift;';
36  fi
37  echo '  ;;';
38 done
39
40 for o in $ARGS_PASS_OPTS
41 do
42  on=`echo $o | cut -d: -f1`
43  oa=`echo $o | cut -d: -f2`
44  echo "  '$on')";
45  if $oa
46  then
47   echo '   _args="$_args '"$on"' $1";';
48   echo '   shift;';
49  else
50   echo '   _args="$_args '"$on"'";';
51  fi
52  echo '  ;;';
53 done
54
55 for o in $ARGS_MAP_OPTS
56 do
57  on=`echo $o | cut -d: -f1`
58  oa=`echo $o | cut -d: -f2`
59  or=`echo $o | cut -d: -f3`
60  echo "  '$on')";
61  if $oa
62  then
63   echo '   _args="$_args '"$or"' $1";';
64   echo '   shift;';
65  else
66   echo '   _args="$_args '"$or"'";';
67  fi
68  echo '  ;;';
69 done
70
71 for o in $ARGS_DEEQ_OPTS
72 do
73  echo "  '$o='*)";
74  echo '   _para=`echo "$k" | cut -d= -f2`;';
75  echo '   _args="$_args '"$o"' $_para";';
76  echo '  ;;';
77 done
78
79 for o in $ARGS_ENV_OPTS
80 do
81  on=`echo $o | cut -d: -f1`
82  or=`echo $o | cut -d: -f2`
83  echo "  '$on')";
84  echo "   export $or=\"\$1\"";
85  echo '   shift;';
86  echo '  ;;';
87  echo "  '$on='*)";
88  echo '   _para=`echo "$k" | cut -d= -f2`;';
89  echo "   export $or=\"\$_para\"";
90  echo '  ;;';
91 done
92
93 cat <<_E_O_F_
94  '-'*)
95   echo "Unknown option" >&2;
96   exit 1;
97  ;;
98  *)
99_E_O_F_
100
101 if $ARGS_PASS_NON_OPTS
102 then
103  echo '   _args="$_args $k";';
104 else
105  echo '   echo "Unknown option" >&2;';
106  echo '   exit 1;';
107 fi
108
109 cat <<_E_O_F_
110  ;;
111 esac;
112done
113
114_E_O_F_
115
116 if $ARGS_PASS_NON_OPTS
117 then
118  echo '_args="$_args $*";';
119 else
120  echo 'if [ "$*" != '' ]';
121  echo 'then';
122  echo ' echo "Unknown option" >&2;';
123  echo ' exit 1;';
124  echo 'fi';
125 fi
126
127 cat <<_E_O_F_
128
129exec $RNAME \$_args
130_E_O_F_
131
132 echo
133 echo '#ll'
134} > $OUT
135
136chmod a+rx $OUT
137
138exit 0;
139
140#ll
Note: See TracBrowser for help on using the repository browser.