From a378a6a13981b962039c8cd11e11caf0759965bd Mon Sep 17 00:00:00 2001 From: Randall Leeds Date: Sun, 2 Oct 2011 04:11:54 -0700 Subject: improve argument parsing in couchjs This change makes argument parsing in couchjs more robust: * Removes the need for couchjs script * Adds long options * Makes all the options to couchjs available (fix COUCHDB-893) Conflicts: bin/Makefile.am bin/couchjs.tpl.in configure.ac --- bin/Makefile.am | 37 +++++----------------- bin/couchjs.tpl.in | 92 ------------------------------------------------------ 2 files changed, 7 insertions(+), 122 deletions(-) delete mode 100644 bin/couchjs.tpl.in (limited to 'bin') diff --git a/bin/Makefile.am b/bin/Makefile.am index b8b818cb..7d50d4e4 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -13,13 +13,13 @@ if WINDOWS bin_SCRIPTS = couchdb.bat else -bin_SCRIPTS = couchdb couchjs +bin_SCRIPTS = couchdb endif noinst_SCRIPTS = couchjs_dev if HELP2MAN -dist_man1_MANS = couchdb.1 couchjs.1 +dist_man1_MANS = couchdb.1 endif CLEANFILES = $(bin_SCRIPTS) $(dist_man1_MANS) $(noinst_SCRIPTS) @@ -48,27 +48,12 @@ couchdb: couchdb.tpl $@ < $< chmod +x $@ -couchjs: couchjs.tpl - sed -e "s|%locallibbindir%|@locallibbindir@|g" \ - -e "s|%bug_uri%|@bug_uri@|g" \ - -e "s|%package_author_address%|@package_author_address@|g" \ - -e "s|%package_author_name%|@package_author_name@|g" \ - -e "s|%package_name%|@package_name@|g" \ - -e "s|%version%|@version@|g" \ - -e "s|%couchjs_command_name%|$(couchjs_command_name)|g" > \ - $@ < $< - chmod +x $@ +install-exec-hook: + $(LN_S) -f "$(locallibbindir)/$(couchjs_command_name)" \ + "$(DESTDIR)$(bindir)/$(couchjs_command_name)" -couchjs_dev: couchjs.tpl - sed -e "s|%locallibbindir%|$(abs_top_builddir)/src/couchdb/priv|g" \ - -e "s|%bug_uri%|@bug_uri@|g" \ - -e "s|%package_author_address%|@package_author_address@|g" \ - -e "s|%package_author_name%|@package_author_name@|g" \ - -e "s|%package_name%|@package_name@|g" \ - -e "s|%version%|@version@|g" \ - -e "s|%couchjs_command_name%|$(couchjs_command_name)|g" > \ - $@ < $< - chmod +x $@ +couchjs_dev: + $(LN_S) -f "$(abs_top_builddir)/src/couchdb/priv/couchjs" "$@" couchdb.bat: couchdb.bat.tpl sed -e "s|%ICU_CONFIG%|$(ICU_CONFIG)|g" \ @@ -88,11 +73,3 @@ couchdb.1: couchdb.tpl.in $(HELP2MAN_EXECUTABLE) $(HELP2MAN_OPTION) \ --name="Apache CouchDB database server" ./couchdb --output $@; \ fi - -couchjs.1: couchjs.tpl.in - touch $@ - if test -x "$(HELP2MAN_EXECUTABLE)"; then \ - $(MAKE) -f Makefile couchjs; \ - $(HELP2MAN_EXECUTABLE) $(HELP2MAN_OPTION) \ - --name="Apache CouchDB JavaScript interpreter" ./couchjs --output $@; \ - fi diff --git a/bin/couchjs.tpl.in b/bin/couchjs.tpl.in deleted file mode 100644 index 6927a0d4..00000000 --- a/bin/couchjs.tpl.in +++ /dev/null @@ -1,92 +0,0 @@ -#! /bin/sh -e - -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy of -# the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. - -SCRIPT_OK=0 -SCRIPT_ERROR=1 - -DEFAULT_VERSION=170 - -basename=`basename $0` - -display_version () { - cat << EOF -$basename - %package_name% %version% - -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed -under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the License for the -specific language governing permissions and limitations under the License. -EOF -} - -display_help () { - cat << EOF -Usage: $basename [FILE] - -The $basename command runs the %package_name% JavaScript interpreter. - -The exit status is 0 for success or 1 for failure. - -Options: - - -h display a short help message and exit - -V display version information and exit - -Report bugs at <%bug_uri%>. -EOF -} - -display_error () { - if test -n "$1"; then - echo $1 >&2 - fi - echo >&2 - echo "Try \`"$basename" -h' for more information." >&2 - exit $SCRIPT_ERROR -} - -run_couchjs () { - exec %locallibbindir%/%couchjs_command_name% $@ -} - -parse_script_option_list () { - set +e - options=`getopt hV $@` - if test ! $? -eq 0; then - display_error - fi - set -e - eval set -- $options - while [ $# -gt 0 ]; do - case "$1" in - -h) shift; display_help; exit $SCRIPT_OK;; - -V) shift; display_version; exit $SCRIPT_OK;; - --) shift; break;; - *) break;; - esac - done - option_list=`echo $@ | sed 's/--//'` - if test -z "$option_list"; then - display_error "You must specify a FILE." - fi - run_couchjs $option_list -} - -parse_script_option_list $@ -- cgit v1.2.3