diff options
author | Randall Leeds <randall@apache.org> | 2011-10-02 04:11:45 -0700 |
---|---|---|
committer | Randall Leeds <randall@apache.org> | 2011-10-02 04:11:45 -0700 |
commit | b09c2694b36e6f91d19e9501ad3d2904c537a2b3 (patch) | |
tree | 7c79c48a0ad5da3a54b07e20c63ba2ae20524de7 /bin | |
parent | 25673c242845b39d2dcbe93e41459f3f55bb1691 (diff) | |
download | couchdb-b09c2694b36e6f91d19e9501ad3d2904c537a2b3.tar.gz |
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)
Diffstat (limited to 'bin')
-rw-r--r-- | bin/Makefile.am | 37 | ||||
-rw-r--r-- | bin/couchjs.tpl.in | 95 |
2 files changed, 7 insertions, 125 deletions
diff --git a/bin/Makefile.am b/bin/Makefile.am index 5737e0aa4..320c8a70d 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -13,13 +13,13 @@ if WINDOWS bin_SCRIPTS = couchdb.bat else -bin_SCRIPTS = couchdb couchjs couch-config +bin_SCRIPTS = couchdb couch-config endif noinst_SCRIPTS = couchjs_dev couch-config_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" \ @@ -136,11 +121,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 2481dcdcd..000000000 --- a/bin/couchjs.tpl.in +++ /dev/null @@ -1,95 +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 - -H install couchjs cURL bindings (only avaiable - if CouchDB was built with cURL available) - -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 hVH $@` - 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 - script_name=`echo $@ | sed -e 's/.*--[[:blank:]]*//'` - if test -z "$script_name"; then - display_error "You must specify a FILE." - fi - options=`echo $@ | sed -e 's/--//'` - run_couchjs $options -} - -parse_script_option_list $@ |