#!/usr/bin/env bash set -e EXTROOT=$(cd `dirname $0`/..; pwd) EXTKEY="org.civicrm.afform-html" ############################## function do_help() { echo "usage: $0 [options]" echo "example: $0" echo " -h (Help) Show this help screen" echo " -D (Download) Download dependencies" echo " -z (Zip) Build installable ZIP file" } ############################## function use_civiroot() { if [ -z "$CIVIROOT" ]; then CIVIROOT=$(cv ev 'echo $GLOBALS["civicrm_root"];') if [ -z "$CIVIROOT" -o ! -d "$CIVIROOT" ]; then do_help echo "" echo "ERROR: invalid civicrm-dir: [$CIVIROOT]" exit fi fi } ############################## function cleanup() { use_civiroot ## No DAOs or XML build to cleanup } ############################## function do_download() { pushd "$EXTROOT" >> /dev/null npm install popd >> /dev/null } ############################## ## Build installable ZIP file function do_zipfile() { local canary="$EXTROOT/node_modules/monaco-editor/package.json" if [ ! -f "$canary" ]; then echo "Error: File $canary missing. Are you sure the build is ready?" exit 1 fi local zipfile="$EXTROOT/build/$EXTKEY.zip" [ -f "$zipfile" ] && rm -f "$zipfile" [ ! -d "$EXTROOT/build" ] && mkdir "$EXTROOT/build" pushd "$EXTROOT" >> /dev/null ## Build a list of files to include. ## Put the files into the *.zip, using a $EXTKEY as a prefix. { ## Get any files in the project root, except for dotfiles. find . -mindepth 1 -maxdepth 1 -type f -o -type d | grep -v '^\./\.' ## Get any files in the main subfolders. #find CRM/ ang/ api/ bin/ css/ js/ sql/ sass/ settings/ templates/ tests/ xml/ -type f -o -type d find bin/ xml/ -type f -o -type d ## Get the distributable files for Monaco. find node_modules/monaco-editor/LICENSE node_modules/monaco-editor/min -type f -o -type d } \ | grep -v '~$' \ | php bin/add-zip-regex.php "$zipfile" ":^:" "$EXTKEY/" popd >> /dev/null echo "Created: $zipfile" } ############################## ## Main HAS_ACTION= while getopts "aDghz" opt; do case $opt in h) do_help HAS_ACTION=1 ;; D) do_download HAS_ACTION=1 ;; z) do_zipfile HAS_ACTION=1 ;; \?) do_help echo "Invalid option: -$OPTARG" >&2 exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done if [ -z "$HAS_ACTION" ]; then do_help exit 2 fi