| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | #!/bin/sh
set -e
cd /usr/src/php/ext
usage() {
	echo "usage: $0 [-jN] ext-name [ext-name ...]"
	echo "   ie: $0 gd mysqli"
	echo "       $0 pdo pdo_mysql"
	echo "       $0 -j5 gd mbstring mysqli pdo pdo_mysql shmop"
	echo
	echo 'if custom ./configure arguments are necessary, see docker-php-ext-configure'
	echo
	echo 'Possible values for ext-name:'
	echo $(find /usr/src/php/ext -mindepth 2 -maxdepth 2 -type f -name 'config.m4' | cut -d/ -f6 | sort)
}
opts="$(getopt -o 'h?j:' --long 'help,jobs:' -- "$@" || { usage >&2 && false; })"
eval set -- "$opts"
j=1
while true; do
	flag="$1"
	shift
	case "$flag" in
		--help|-h|'-?') usage && exit 0 ;;
		--jobs|-j) j="$1" && shift ;;
		--) break ;;
		*)
			{
				echo "error: unknown flag: $flag"
				usage
			} >&2
			exit 1
			;;
	esac
done
exts=
for ext; do
	if [ -z "$ext" ]; then
		continue
	fi
	if [ ! -d "$ext" ]; then
		echo >&2 "error: $(pwd -P)/$ext does not exist"
		echo >&2
		usage >&2
		exit 1
	fi
	exts="$exts $ext"
done
if [ -z "$exts" ]; then
	usage >&2
	exit 1
fi
if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then
	apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS
fi
for ext in $exts; do
	(
		cd "$ext"
		[ -e Makefile ] || docker-php-ext-configure "$ext"
		make -j"$j"
		make -j"$j" install
		find modules \
			-maxdepth 1 \
			-name '*.so' \
			-exec basename '{}' ';' \
				| xargs -r docker-php-ext-enable
		make -j"$j" clean
	)
done
if [ -e /lib/apk/db/installed ] && [ -n "$PHPIZE_DEPS" ]; then
	apk del .phpize-deps
fi
 |