From 97d044357d4e775628a2a9b2ddf0a1c7e79660db Mon Sep 17 00:00:00 2001 From: Lourdes Date: Mon, 29 Sep 2025 10:49:48 -0700 Subject: [PATCH 1/2] changed hardcoded directory to directory pointed to by handler settings --- misc/custom-script-shim | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/misc/custom-script-shim b/misc/custom-script-shim index 847ba45..bfc5c18 100755 --- a/misc/custom-script-shim +++ b/misc/custom-script-shim @@ -2,8 +2,15 @@ set -euo pipefail readonly SCRIPT_DIR=$(dirname "$0") -readonly LOG_DIR="/var/log/azure/custom-script" -readonly LOG_FILE=handler.log +readonly HANDLER_ENV_PATH="${SCRIPT_DIR}/../HandlerEnvironment.json" +readonly HANDLER_ENV=$(cat $HANDLER_ENV_PATH) + +# Extract log folder path from HandlerEnvironment.json +tmp=${HANDLER_ENV#*logFolder\": \"} +readonly LOG_DIR=${tmp%%\"\,*} +unset tmp + +readonly LOG_FILE=CommandExecution.log readonly ARCHITECTURE=$( [[ "$(uname -p)" == "unknown" ]] && echo "$(uname -m)" || echo "$(uname -p)" ) #ternary operator HANDLER_BIN="custom-script-extension" if [ $ARCHITECTURE == "arm64" ] || [ $ARCHITECTURE == "aarch64" ]; then From 7b2deed985ba04d0c63ce743a1ceb72a2f7f4ede Mon Sep 17 00:00:00 2001 From: Lourdes Date: Wed, 1 Oct 2025 11:22:13 -0700 Subject: [PATCH 2/2] added fallback to old log directory in case handlerenv doesn't work --- misc/custom-script-shim | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/misc/custom-script-shim b/misc/custom-script-shim index bfc5c18..ee98454 100755 --- a/misc/custom-script-shim +++ b/misc/custom-script-shim @@ -1,22 +1,28 @@ #!/usr/bin/env bash set -euo pipefail + readonly SCRIPT_DIR=$(dirname "$0") +readonly LOG_FOLDER_KEY=logFolder +readonly LOG_FILE=handler.log readonly HANDLER_ENV_PATH="${SCRIPT_DIR}/../HandlerEnvironment.json" -readonly HANDLER_ENV=$(cat $HANDLER_ENV_PATH) - -# Extract log folder path from HandlerEnvironment.json -tmp=${HANDLER_ENV#*logFolder\": \"} -readonly LOG_DIR=${tmp%%\"\,*} -unset tmp +readonly HANDLER_ENV=$(cat $HANDLER_ENV_PATH) # If file is missing, this will come out blank -readonly LOG_FILE=CommandExecution.log -readonly ARCHITECTURE=$( [[ "$(uname -p)" == "unknown" ]] && echo "$(uname -m)" || echo "$(uname -p)" ) #ternary operator +readonly ARCHITECTURE=$( [[ "$(uname -p)" == "unknown" ]] && echo "$(uname -m)" || echo "$(uname -p)" ) # ternary operator HANDLER_BIN="custom-script-extension" if [ $ARCHITECTURE == "arm64" ] || [ $ARCHITECTURE == "aarch64" ]; then - HANDLER_BIN="custom-script-extension-arm64"; + HANDLER_BIN="custom-script-extension-arm64" fi +LOG_DIR="/var/log/azure/custom-script" +if [[ "$HANDLER_ENV" == *"$LOG_FOLDER_KEY"* ]]; then + tmp=${HANDLER_ENV#*$LOG_FOLDER_KEY\": \"} + LOG_DIR=${tmp%%\"\,*} + unset tmp +fi + +echo "Placing logs in directory $LOG_DIR" + # status_file returns the .status file path we are supposed to write # by determining the highest sequence number from ./config/*.settings files. status_file_path() {