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
RevLine 
[2848]1#!/bin/sh
2
3OUT="$1"
4IN="$2"
5
[3502]6HELPFILE=`tempfile -p $$- -s .help`
7HELPOPTS=''
8
[3499]9ARGS_END_OPTS_ON_NON_OPT=false
10
[3502]11ast2roar_help() {
12 HELPOPTS="$*"
13
14 cat > $HELPFILE
15}
[2848]16
[3502]17if [ -r $IN ]
18then
19 . ./$IN
20else
21 rm $HELPFILE
22 exit 1;
23fi
[2848]24
25{
26 echo '#!/bin/sh'
27 echo
28
[2871]29 echo "_args='$ARGS_ADD_OPTS';"
[2848]30 cat <<_E_O_F_
31
32while [ -n "\$1" ]
33do
[3497]34 k="\$1";
[2848]35 shift;
36
37 case "\$k" in
[3497]38  '--')
39   break;
40  ;;
[2848]41_E_O_F_
42
[3502]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
[2848]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
[2855]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
[3122]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
[3498]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
[2848]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";';
[3499]130  if $ARGS_END_OPTS_ON_NON_OPT
131  then
132   echo '   break;';
133  fi
[2848]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
[3497]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
[2848]159exec $RNAME \$_args
160_E_O_F_
161
162 echo
163 echo '#ll'
164} > $OUT
165
166chmod a+rx $OUT
167
[3502]168rm $HELPFILE
169
[2848]170exit 0;
171
172#ll
Note: See TracBrowser for help on using the repository browser.