Skip to content

Commit fae7ea2

Browse files
authored
Merge pull request #62 from stackhpc/script-run
Add script-run.sh to run arbitrary bash scripts
2 parents f6fb594 + 7ea8a38 commit fae7ea2

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

scripts/script-run.sh

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash
2+
3+
set -euE
4+
set -o pipefail
5+
6+
PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7+
8+
source "${PARENT}/../functions"
9+
10+
KAYOBE_AUTOMATION_CONTEXT_SCRIPT="$(basename $1)"
11+
12+
function pull_request_branch_name {
13+
# script.sh/<uuid> -> script.sh/<script name>/<uuid>
14+
echo "script-run.sh/$KAYOBE_AUTOMATION_CONTEXT_SCRIPT/$(uuidgen)"
15+
}
16+
17+
function main {
18+
script=$1
19+
args=("${@:2}")
20+
shift $#
21+
log_info "Running custom script: $script"
22+
log_debug "Script args: ${args[@]}"
23+
kayobe_init
24+
# Use eval so we can do something like: script-run.sh '$KAYOBE_CONFIG_PATH/../../tools/foo.sh'
25+
# NOTE: KAYOBE_CONFIG_PATH gets defined by kayobe_init
26+
local SCRIPT_PATH="$(eval echo $script)"
27+
if ! is_absolute_path "$SCRIPT_PATH"; then
28+
# Default to a path relative to repository root
29+
SCRIPT_PATH="$KAYOBE_CONFIG_PATH/../../$SCRIPT_PATH"
30+
fi
31+
if [ ! -f "$SCRIPT_PATH" ]; then
32+
die $LINENO "Script path does not exist: $SCRIPT_PATH"
33+
fi
34+
$SCRIPT_PATH "${args[@]}"
35+
pull_request "${KAYOBE_AUTOMATION_CONTEXT_ENV_PATH}/src/kayobe-config"
36+
}
37+
38+
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
39+
if [ "$#" -lt 1 ]; then
40+
die $LINENO "Error: You must provide a script to run" \
41+
"Usage: script-run.sh <script>"
42+
fi
43+
main "${@:1}"
44+
fi

0 commit comments

Comments
 (0)