~ salmonella-environment-setup (master) a9b30347fdcd2cb4b8aaded9e4e980e38a34aaa2
commit a9b30347fdcd2cb4b8aaded9e4e980e38a34aaa2 Author: Mario Domenech Goulart <mario@parenteses.org> AuthorDate: Mon Mar 16 18:44:52 2020 +0100 Commit: Mario Domenech Goulart <mario@parenteses.org> CommitDate: Mon Mar 16 18:46:28 2020 +0100 run-salmonella.sh: add support for running hooks The initial idea is to make hooks update the salmonella components between executions of salmonella-run-publish, as it is difficult to find a time slot to manually update them. diff --git a/run-salmonella.sh b/run-salmonella.sh index 9cb65af..724d6b8 100755 --- a/run-salmonella.sh +++ b/run-salmonella.sh @@ -1,6 +1,8 @@ #! /bin/sh -SRC_CONF_DIR=$(readlink -f "$(dirname "$0")")/conf +ROOT_DIR=$(readlink -f "$(dirname "$0")") +SRC_CONF_DIR=$ROOT_DIR/conf +HOOKS_DIR=$ROOT_DIR/hooks LOCAL_CONF_DIR=$HOME/.salmonella-run-publish WORK_DIR=$HOME/salmonella/build LOG_DIR=$HOME/salmonella @@ -30,7 +32,6 @@ export SALMONELLA_REPORTS_DIR=$HOME/salmonella/reports OS=$($CHICKEN_4_PREFIX/bin/csi -p '(software-version)') ARCH=$($CHICKEN_4_PREFIX/bin/csi -p '(machine-type)') -# FIXME: make it an array settings_files="\ $SRC_CONF_DIR/shell-settings/${OS}/settings.sh $SRC_CONF_DIR/shell-settings/${OS}-${ARCH}/settings.sh @@ -46,6 +47,32 @@ for settings_file in $settings_files; do done +run_hooks() { + # Call hooks scripts, passing $OS, $ARCH, CHICKEN_4_PREFIX and + # CHICKEN_5_PREFIX as arguments + local log + local hook + local hook_dir + + log=${LOG_DIR}/hooks.log + + mkdir -p "$LOG_DIR" + rm -f "$log" + + for hook_dir in "${HOOKS_DIR}/common" "${HOOKS_DIR}/${OS}" "${HOOKS_DIR}/${OS}/${ARCH}" + do + if [ -d "$hook_dir" ]; then + for hook in "${hook_dir}/"*; do + if [ -x "$hook" ]; then + echo "=== Running hook $hook ===" + "$hook" "$OS" "$ARCH" "$CHICKEN_4_PREFIX" "$CHICKEN_5_PREFIX" > "$log" 2>&1 + fi + done + fi + done +} + + main() { confs=$@ @@ -89,6 +116,8 @@ main() { debugbuild= fi + run_hooks + conf_path=$SRC_CONF_DIR/${conf}.conf local_conf_path=$LOCAL_CONF_DIR/${conf}.conf if [ -e "$local_conf_path" ]; thenTrap