source: roaraudio/compbins/ast2roar @ 3502:767a550aca4f

Last change on this file since 3502:767a550aca4f was 3502:767a550aca4f, checked in by phi, 14 years ago

added support to include help

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