~ 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" ]; then
Trap