#!/usr/bin/env bash set -eu prefix=/usr/local usage() { echo "Usage: ./configure [OPTION]" echo echo "Configuration:" echo " -h, --help display this help and exit" echo echo "Installation directories:" echo " --prefix=PREFIX install architecture-independent files in PREFIX [$prefix]" } # -allow a command to fail with !’s side effect on errexit # -use return value from ${PIPESTATUS[0]}, because ! hosed $? ! getopt --test > /dev/null if [[ ${PIPESTATUS[0]} -ne 4 ]]; then echo 'getopt not available' exit 1 fi LONGOPTS=prefix:,help OPTIONS=h ! PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@") if [[ ${PIPESTATUS[0]} -ne 0 ]]; then # e.g. return value is 1 # then getopt has complained about wrong arguments to stdout exit 2 fi # read getopt’s output this way to handle the quoting right: eval set -- "$PARSED" while true; do case "$1" in --prefix) prefix="$2" shift 2 ;; -h|--help) usage exit 1 ;; --) shift break ;; *) echo "Programming error" exit 3 ;; esac done echo "prefix=$prefix" >config.mk node_version=$(node --version) if [ ! "$?" -eq 0 ]; then echo 'Error: node executable not found.' echo 'If you are using ubuntu or debian, try installing the' echo 'node-legacy package or symlink node to nodejs.' exit 1 fi echo "Using node ${node_version}" if ! node -p 'process.exit(!(/v([0-9]+)/.exec(process.version)[1] >= 4))'; then echo 'Your node version is too old, use something >v4.x.x' exit 1 fi if ! yarn --version &>/dev/null; then echo 'Error: yarn missing. See https://yarnpkg.com/en/docs/install' exit 1 fi if ! find --version &>/dev/null; then echo 'Error: find missing' exit 1 fi if ! xargs --version &>/dev/null; then echo 'Error: xargs missing' exit 1 fi if ! msgmerge --version &>/dev/null; then echo "Warning: msgmerge missing, i18n won't work" exit 1 fi