#!/bin/sh OUT="$1" IN="$2" HELPFILE=`tempfile -p $$- -s .help` HELPOPTS='' ARGS_END_OPTS_ON_NON_OPT=false ast2roar_help() { HELPOPTS="$*" cat > $HELPFILE } if [ -r $IN ] then . ./$IN else rm $HELPFILE exit 1; fi { echo '#!/bin/sh' echo echo "_args='$ARGS_ADD_OPTS';" cat <<_E_O_F_ while [ -n "\$1" ] do k="\$1"; shift; case "\$k" in '--') break; ;; _E_O_F_ if [ "$HELPOPTS" != '' ] then _opts=`echo "$HELPOPTS" | sed "s/^/\'/; s/$/\'/; s/ /\'\|\'/g"` echo " $_opts)"; echo ' cat <<__AST2ROAR__END_OF_HELP_TEXT__' cat $HELPFILE echo '__AST2ROAR__END_OF_HELP_TEXT__' echo ' exit 0;' echo ' ;;'; fi for o in $ARGS_IGNORE_OPTS do on=`echo $o | cut -d: -f1` oa=`echo $o | cut -d: -f2` echo " '$on')"; if $oa then echo ' shift;'; fi echo ' ;;'; done for o in $ARGS_PASS_OPTS do on=`echo $o | cut -d: -f1` oa=`echo $o | cut -d: -f2` echo " '$on')"; if $oa then echo ' _args="$_args '"$on"' $1";'; echo ' shift;'; else echo ' _args="$_args '"$on"'";'; fi echo ' ;;'; done for o in $ARGS_MAP_OPTS do on=`echo $o | cut -d: -f1` oa=`echo $o | cut -d: -f2` or=`echo $o | cut -d: -f3` echo " '$on')"; if $oa then echo ' _args="$_args '"$or"' $1";'; echo ' shift;'; else echo ' _args="$_args '"$or"'";'; fi echo ' ;;'; done for o in $ARGS_DEEQ_OPTS do echo " '$o='*)"; echo ' _para=`echo "$k" | cut -d= -f2`;'; echo ' _args="$_args '"$o"' $_para";'; echo ' ;;'; done for o in $ARGS_ENV_OPTS do on=`echo $o | cut -d: -f1` or=`echo $o | cut -d: -f2` echo " '$on')"; echo " export $or=\"\$1\""; echo ' shift;'; echo ' ;;'; echo " '$on='*)"; echo ' _para=`echo "$k" | cut -d= -f2`;'; echo " export $or=\"\$_para\""; echo ' ;;'; done cat <<_E_O_F_ '-'*) echo "Unknown option" >&2; exit 1; ;; *) _E_O_F_ if $ARGS_PASS_NON_OPTS then echo ' _args="$_args $k";'; if $ARGS_END_OPTS_ON_NON_OPT then echo ' break;'; fi else echo ' echo "Unknown option" >&2;'; echo ' exit 1;'; fi cat <<_E_O_F_ ;; esac; done _E_O_F_ if $ARGS_PASS_NON_OPTS then echo '_args="$_args $*";'; else echo 'if [ "$*" != '' ]'; echo 'then'; echo ' echo "Unknown option" >&2;'; echo ' exit 1;'; echo 'fi'; fi cat <<_E_O_F_ exec $RNAME \$_args _E_O_F_ echo echo '#ll' } > $OUT chmod a+rx $OUT rm $HELPFILE exit 0; #ll