Skip to content

Commit

Permalink
fix(hooks): Clear state delineation / consistent output
Browse files Browse the repository at this point in the history
Signed-off-by: Josh <[email protected]>
  • Loading branch information
joshtrichards authored Nov 26, 2024
1 parent eeeb4ed commit f360440
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,32 +23,39 @@ run_as() {
run_path() {
local hook_folder_path="/docker-entrypoint-hooks.d/$1"
local return_code=0
local found=0

echo "=> Searching for hook scripts (*.sh) to run, located in the folder: ${hook_folder_path}"
echo "=> Searching for hook scripts (*.sh) to run, located in the folder \"${hook_folder_path}\""

if ! [ -d "${hook_folder_path}" ] || directory_empty "${hook_folder_path}"; then
echo "=> Skipping the hook folder \"${hook_folder_path}\", because it doesn't exist or is empty"
echo "==> Skipped: the \"$1\" folder is empty (or does not exist)"
return 0
fi

(
find "${hook_folder_path}" -maxdepth 1 -iname '*.sh' '(' -type f -o -type l ')' -print | sort | while read -r script_file_path; do
find "${hook_folder_path}" -maxdepth 1 -iname '*.sh' '(' -type f -o -type l ')' -print | sort | (
while read -r script_file_path; do
if ! [ -x "${script_file_path}" ]; then
echo "==> The hook script \"${script_file_path}\" was skipped, because it didn't have the executable flag"
echo "==> The script \"${script_file_path}\" was skipped, because it lacks the executable flag"
found=$((found-1))
continue
fi

echo "==> Running the hook script (cwd: $(pwd)): \"${script_file_path}\""

echo "==> Running the script (cwd: $(pwd)): \"${script_file_path}\""
found=$((found+1))
run_as "${script_file_path}" || return_code="$?"

if [ "${return_code}" -ne "0" ]; then
echo "==> Failed at executing hook script \"${script_file_path}\". Exit code: ${return_code}"
echo "==> Failed at executing script \"${script_file_path}\". Exit code: ${return_code}"
exit 1
fi

echo "==> Finished the hook script: \"${script_file_path}\""
echo "==> Finished executing the script: \"${script_file_path}\""
done
if [ "$found" -lt "1" ]; then
echo "==> Skipped: the \"$1\" folder does not contain any valid scripts"
else
echo "=> Completed executing scripts in the \"$1\" folder"
fi
)
}

Expand Down

0 comments on commit f360440

Please sign in to comment.