0
0
Fork 0
mirror of https://github.com/nextcloud/docker.git synced 2025-04-19 18:36:09 +02:00

fix(hooks): make the output more uniform and delineated (#2343)

* fix(hooks): Consistent logging + skip when empty too

- Use "Searching for scripts [...] located in [...]" consistently (i.e. for each hook_folder_path instead of only for some / under some conditions)
- Skip early if a given hook folder is empty too (not just nonexistent)
- Add feature name (hooks) to all messaging for clarity

Signed-off-by: Josh <josh.t.richards@gmail.com>

* fix(hooks): Clear state delineation / consistent output 

Signed-off-by: Josh <josh.t.richards@gmail.com>

---------

Signed-off-by: Josh <josh.t.richards@gmail.com>
This commit is contained in:
Josh 2025-04-18 09:12:44 -04:00 committed by GitHub
parent 6e8f484c4b
commit b36cfa65da
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -23,32 +23,39 @@ run_as() {
run_path() { run_path() {
local hook_folder_path="/docker-entrypoint-hooks.d/$1" local hook_folder_path="/docker-entrypoint-hooks.d/$1"
local return_code=0 local return_code=0
local found=0
if ! [ -d "${hook_folder_path}" ]; then echo "=> Searching for hook scripts (*.sh) to run, located in the folder \"${hook_folder_path}\""
echo "=> Skipping the folder \"${hook_folder_path}\", because it doesn't exist"
if ! [ -d "${hook_folder_path}" ] || directory_empty "${hook_folder_path}"; then
echo "==> Skipped: the \"$1\" folder is empty (or does not exist)"
return 0 return 0
fi fi
echo "=> Searching for scripts (*.sh) to run, located in the folder: ${hook_folder_path}" 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 if ! [ -x "${script_file_path}" ]; then
echo "==> The 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 continue
fi fi
echo "==> Running the 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="$?" run_as "${script_file_path}" || return_code="$?"
if [ "${return_code}" -ne "0" ]; then if [ "${return_code}" -ne "0" ]; then
echo "==> Failed at executing \"${script_file_path}\". Exit code: ${return_code}" echo "==> Failed at executing script \"${script_file_path}\". Exit code: ${return_code}"
exit 1 exit 1
fi fi
echo "==> Finished the script: \"${script_file_path}\"" echo "==> Finished executing the script: \"${script_file_path}\""
done 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
) )
} }