#!/bin/bash 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=() while [ $# -gt 0 ]; do ext="$1" shift 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+=( "$ext" ) done if [ "${#exts[@]}" -eq 0 ]; then usage >&2 exit 1 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 --no-run-if-empty --verbose docker-php-ext-enable make -j"$j" clean ) done