#!/bin/sh set -euC check_command () { echo -n "Checking for command $1 ... " if command -v "$1" >/dev/null then echo 'found!' else echo 'not available!'; exit 1 fi } check_perl_deps () { for d in "$@" do echo -n "Checking for perl module $d ... " if perl -Ilib -e "use $d;" then echo 'found!' else echo 'not available!'; exit 1 fi done } check_node_module () { echo -n "Checking for node module $1 ... " if [ -d "node_modules/$1" ] then echo 'found!' else echo 'not available!'; exit 1 fi } check_ninja_version () { ninja_file="$(mktemp -t jwm-build-XXXXXXXX)" echo "ninja_required_version = $1" >>"$ninja_file" echo -n "Checking ninja version at least $1 ... " if ninja -f "$ninja_file" >/dev/null then echo 'sufficient!' else echo 'inadequate!'; exit 1 fi rm "$ninja_file" } allargs="$*" while getopts 'c:e:hm:' opt do case $opt in (e) JWM_MAILDIR_EXTRACTOR="$OPTARG";; (m) JWM_MODE="$OPTARG";; (c) JWM_LOGIN_SCHEME="$OPTARG";; (h) t="$(printf '\t')" expand -t 70 <&2; exit; } JWM_EXTRACTRS_DIR=extract check_command cargo MAILDIR_EXTRACTOR_BIN=bin/jwebmail-extract ;; esac export LOGIN_SCHEME="$JWM_LOGIN_SCHEME" export CONFARGS="$allargs" export MAILDIR_EXTRACTOR_NAME="$JWM_MAILDIR_EXTRACTOR" export MAILDIR_EXTRACTOR_BIN export JWM_EXTRACTRS_DIR export JWM_MODE perl -pe 's/@(\w+)@/$ENV{$1}/ga' lib/JWebmail/Config.pm.in >|lib/JWebmail/Config.pm m4 -DJWM_LOGIN_SCHEME="$JWM_LOGIN_SCHEME" -DJWM_MODE="$JWM_MODE" -DMAILDIR_EXTRACTOR_NAME="$MAILDIR_EXTRACTOR_NAME" MANIFEST.BIN.m4 >|MANIFEST.BIN sh confninja.sh >|build.ninja