fix: copy hidden role files

This commit is contained in:
deadcxap
2025-08-25 01:27:12 +03:00
parent fd145ad7a1
commit 775fd9a5c2
+17 -13
View File
@@ -255,7 +255,7 @@ EOF"
setup_role() { setup_role() {
[[ -z "$ROLE" ]] && return [[ -z "$ROLE" ]] && return
local TEMP_DIR ROLE_SRC ROLE_TARGET INIT_SCRIPT REPO_URL ROLE_URL local TEMP_DIR ROLE_SRC REPO_URL ROLE_URL service_dir service_name target_dir init_script
REPO_URL="https://github.com/deadcxap/init_scripts.git" REPO_URL="https://github.com/deadcxap/init_scripts.git"
ROLE_URL="https://api.github.com/repos/deadcxap/init_scripts/contents/$ROLE" ROLE_URL="https://api.github.com/repos/deadcxap/init_scripts/contents/$ROLE"
log "Checking role $ROLE exists in repository" log "Checking role $ROLE exists in repository"
@@ -283,18 +283,22 @@ setup_role() {
run "Cleaning up role repository" rm -rf "$TEMP_DIR" run "Cleaning up role repository" rm -rf "$TEMP_DIR"
return return
fi fi
run "Copying role files" cp -r "$ROLE_SRC" /opt/ run "Copying role files" cp -r "$ROLE_SRC"/. /opt/
ROLE_TARGET="/opt/$ROLE" for service_dir in "$ROLE_SRC"/*; do
run "Setting ownership for $ROLE_TARGET" chown -R "$USERNAME:$USERNAME" "$ROLE_TARGET" [ -d "$service_dir" ] || continue
INIT_SCRIPT="$ROLE_TARGET/init.sh" service_name="$(basename "$service_dir")"
if [[ -f "$INIT_SCRIPT" ]]; then target_dir="/opt/$service_name"
run "Running init.sh for $ROLE" bash "$INIT_SCRIPT" run "Setting ownership for $target_dir" chown -R "$USERNAME:$USERNAME" "$target_dir"
run "Checking $ROLE stack" bash -c "cd '$ROLE_TARGET' && docker compose ps | grep -q 'Up'" init_script="$target_dir/init.sh"
run "Removing init.sh for $ROLE" rm -f "$INIT_SCRIPT" if [[ -f "$init_script" ]]; then
else run "Running init.sh for $service_name" bash "$init_script"
log "WARN: init.sh not found in $ROLE_TARGET, skipping" run "Checking $service_name stack" bash -c "cd \"$target_dir\" && docker compose ps | grep -q 'Up'"
SUMMARY+=("init.sh for $ROLE: MISSING") run "Removing init.sh for $service_name" rm -f "$init_script"
fi else
log "WARN: init.sh not found in $target_dir, skipping"
SUMMARY+=("init.sh for $service_name: MISSING")
fi
done
run "Cleaning up role repository" rm -rf "$TEMP_DIR" run "Cleaning up role repository" rm -rf "$TEMP_DIR"
} }