Skip to content
This repository was archived by the owner on Dec 23, 2018. It is now read-only.

Commit 42c92b6

Browse files
committed
Better option parsing for phpenv-install
1 parent 22417c5 commit 42c92b6

File tree

1 file changed

+47
-16
lines changed

1 file changed

+47
-16
lines changed

bin/phpenv-install

Lines changed: 47 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,54 @@ if [ -z "$PHPENV_ROOT" ]; then
1111
PHPENV_ROOT="${HOME}/.phpenv"
1212
fi
1313

14-
DEFINITION="$1"
15-
case "$DEFINITION" in
16-
"" | -* )
17-
{ echo "usage: phpenv install VERSION"
18-
echo " phpenv install /path/to/definition"
14+
# Load shared library functions
15+
eval "$(php-build --lib)" && lib
16+
17+
usage() {
18+
{ echo "usage: phpenv install [-k|--keep] [-v|--verbose] VERSION"
19+
echo " phpenv install [-k|--keep] [-v|--verbose] /path/to/definition"
20+
echo " phpenv install -l|--list"
1921
echo
20-
echo "Available versions:"
21-
php-build --definitions | sed 's/^/ /'
22+
echo " -l/--list List all available versions"
23+
echo " -k/--keep Keep source tree in \$PHPENV_BUILD_ROOT after installation"
24+
echo " (defaults to ${PHPENV_ROOT}/sources)"
25+
echo " -v/--verbose Verbose mode: print compilation status to stdout"
2226
echo
2327
} >&2
24-
exit 1
25-
;;
26-
"-k" | "--keep" )
27-
[ -z "${PHPENV_BUILD_ROOT}" ] && PHPENV_BUILD_ROOT="${PHPENV_ROOT}/sources"
28-
PHP_BUILD_OPTIONS="${PHP_BUILD_OPTIONS} -k"
29-
;;
30-
esac
28+
[ -z "$1" ] || exit "$1"
29+
}
30+
31+
unset KEEP
32+
unset VERBOSE
33+
34+
parse_options "$@"
35+
for option in "${OPTIONS[@]}"; do
36+
case "$option" in
37+
"h" | "help" )
38+
usage 0
39+
;;
40+
"l" | "list" )
41+
echo "Available versions:"
42+
php-build --definitions | sed 's/^/ /'
43+
exit
44+
;;
45+
"k" | "keep" )
46+
[ -n "${PHPENV_BUILD_ROOT}" ] || PHPENV_BUILD_ROOT="${PHPENV_ROOT}/sources"
47+
;;
48+
"v" | "verbose" )
49+
VERBOSE="-v"
50+
;;
51+
"version" )
52+
exec php-build --version
53+
;;
54+
* )
55+
usage 1
56+
;;
57+
esac
58+
done
59+
60+
DEFINITION="${ARGUMENTS[0]}"
61+
[ -n "$DEFINITION" ] || usage 1
3162

3263
VERSION_NAME="${DEFINITION##*/}"
3364
PREFIX="${PHPENV_ROOT}/versions/${VERSION_NAME}"
@@ -36,8 +67,8 @@ PREFIX="${PHPENV_ROOT}/versions/${VERSION_NAME}"
3667
# php-build
3768
if [ -n "${PHPENV_BUILD_ROOT}" ]; then
3869
export PHP_BUILD_BUILD_PATH="${PHPENV_BUILD_ROOT}/${VERSION_NAME}"
39-
PHP_BUILD_OPTIONS="${PHP_BUILD_OPTIONS} -k"
70+
KEEP="-k"
4071
fi
4172

42-
php-build "$DEFINITION" "$PREFIX" "$PHP_BUILD_OPTIONS"
73+
php-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX"
4374
phpenv rehash

0 commit comments

Comments
 (0)