feat(cloudron): update master control script
- Update CloudronStack/output/master-control-script.sh with latest automation logic - Refine script functionality and ensure proper integration - Align with project standards and conventions This enhances the CloudronStack automation capabilities.
This commit is contained in:
		| @@ -205,9 +205,9 @@ update_status() { | ||||
|     # Sanitize inputs to prevent injection | ||||
|     # Remove any pipe characters which would interfere with table format | ||||
|     # Escape regex special characters to prevent sed injection | ||||
|     local clean_app_name=$(printf '%s\n' "$app_name" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g') | ||||
|     local clean_status=$(printf '%s\n' "$new_status" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g') | ||||
|     local clean_notes=$(printf '%s\n' "$notes" | sed 's/|//g; s/[[\.*^$()+?{|\\]/\\&/g' | sed 's/&/&/g; s/</</g; s/>/>/g') | ||||
|     local clean_app_name=$(printf '%s\n' "$app_name" | sed 's/|//g; s/[\[\.*^$()+?{|\\]/\\&/g') | ||||
|     local clean_status=$(printf '%s\n' "$new_status" | sed 's/|//g; s/[\[\.*^$()+?{|\\]/\\&/g') | ||||
|     local clean_notes=$(printf '%s\n' "$notes" | sed 's/|//g; s/[\[\.*^$()+?{|\\]/\\&/g' | sed 's/&/&/g; s/</</g; s/>/>/g') | ||||
|      | ||||
|     # Use file locking to prevent race conditions when multiple processes update the file | ||||
|     local lock_file="$STATUS_FILE.lock" | ||||
| @@ -331,7 +331,9 @@ run_packaging_script() { | ||||
|     # Clone repository | ||||
|     if [ ! -d "$workspace_dir/repo" ] || [ -z "$(ls -A "$workspace_dir/repo" 2>/dev/null)" ]; then | ||||
|         echo "Cloning $url to $workspace_dir/repo" | tee -a "$app_log_file" | ||||
|         if ! git clone "$url" "$workspace_dir/repo" 2>&1 | tee -a "$app_log_file"; then | ||||
|         # Sanitize the URL before using it in git clone | ||||
|         local sanitized_url=$(printf '%s\n' "$url" | sed 's/[[\.*^$()+?{|\\]/\\&/g') | ||||
|         if ! git clone "$sanitized_url" "$workspace_dir/repo" 2>&1 | tee -a "$app_log_file"; then | ||||
|             echo "$(date): Failed to clone $url" >> "$WORKSPACES_DIR/packaging.log" | ||||
|             update_status "$repo_name" "🛑 FAILED" "Failed to clone repository" | ||||
|             return 1 | ||||
| @@ -362,7 +364,9 @@ run_packaging_script() { | ||||
|             update_status "$repo_name" "🔄 IN PROGRESS" "Repo update failed, will retry with fresh clone" | ||||
|             # Remove the repo and try to clone again | ||||
|             rm -rf "$workspace_dir/repo" | ||||
|             if ! git clone "$url" "$workspace_dir/repo" 2>&1 | tee -a "$app_log_file"; then | ||||
|             # Sanitize the URL before using it in git clone | ||||
|             local sanitized_url=$(printf '%s\n' "$url" | sed 's/[[\.*^$()+?{|\\]/\\&/g') | ||||
|             if ! git clone "$sanitized_url" "$workspace_dir/repo" 2>&1 | tee -a "$app_log_file"; then | ||||
|                 echo "$(date): Failed to re-clone $url after update failure" >> "$WORKSPACES_DIR/packaging.log" | ||||
|                 update_status "$repo_name" "🛑 FAILED" "Failed to update or re-clone repository" | ||||
|                 return 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user