summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorRandall Leeds <randall@apache.org>2011-10-02 04:11:45 -0700
committerRandall Leeds <randall@apache.org>2011-10-02 04:11:45 -0700
commitb09c2694b36e6f91d19e9501ad3d2904c537a2b3 (patch)
tree7c79c48a0ad5da3a54b07e20c63ba2ae20524de7 /bin
parent25673c242845b39d2dcbe93e41459f3f55bb1691 (diff)
downloadcouchdb-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.am37
-rw-r--r--bin/couchjs.tpl.in95
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 $@