Skip to content

Commit

Permalink
Merge pull request #62 from stackhpc/script-run
Browse files Browse the repository at this point in the history
Add script-run.sh to run arbitrary bash scripts
  • Loading branch information
markgoddard committed Aug 20, 2024
2 parents f6fb594 + 7ea8a38 commit fae7ea2
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions scripts/script-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash

set -euE
set -o pipefail

PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

source "${PARENT}/../functions"

KAYOBE_AUTOMATION_CONTEXT_SCRIPT="$(basename $1)"

function pull_request_branch_name {
# script.sh/<uuid> -> script.sh/<script name>/<uuid>
echo "script-run.sh/$KAYOBE_AUTOMATION_CONTEXT_SCRIPT/$(uuidgen)"
}

function main {
script=$1
args=("${@:2}")
shift $#
log_info "Running custom script: $script"
log_debug "Script args: ${args[@]}"
kayobe_init
# Use eval so we can do something like: script-run.sh '$KAYOBE_CONFIG_PATH/../../tools/foo.sh'
# NOTE: KAYOBE_CONFIG_PATH gets defined by kayobe_init
local SCRIPT_PATH="$(eval echo $script)"
if ! is_absolute_path "$SCRIPT_PATH"; then
# Default to a path relative to repository root
SCRIPT_PATH="$KAYOBE_CONFIG_PATH/../../$SCRIPT_PATH"
fi
if [ ! -f "$SCRIPT_PATH" ]; then
die $LINENO "Script path does not exist: $SCRIPT_PATH"
fi
$SCRIPT_PATH "${args[@]}"
pull_request "${KAYOBE_AUTOMATION_CONTEXT_ENV_PATH}/src/kayobe-config"
}

if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
if [ "$#" -lt 1 ]; then
die $LINENO "Error: You must provide a script to run" \
"Usage: script-run.sh <script>"
fi
main "${@:1}"
fi

0 comments on commit fae7ea2

Please sign in to comment.