#!/bin/bash # Quick Batch Processor for Cloudron Apps set -e WORKSPACE_DIR="/home/localuser/TSYSDevStack/Cloudron/CloudronPackages-Workspace" # Create package for single app create_package() { local app_name="$1" local app_dir="$WORKSPACE_DIR/$app_name" if [ -d "$app_dir/app" ]; then echo "✓ $app_name already processed" return 0 fi echo "Processing $app_name..." mkdir -p "$app_dir/app" # Create manifest cat > "$app_dir/app/manifest.json" << EOF { "id": "com.$app_name.cloudron", "title": "$app_name", "version": "1.0.0", "description": "Auto-generated Cloudron package for $app_name", "developer": { "name": "TSYSDevStack Team", "email": "support@tsysdevstack.com" }, "tags": ["productivity", "web-app"], "httpPort": 8080, "manifestVersion": 2, "healthCheck": { "path": "/", "port": 8080 } } EOF # Create Dockerfile cat > "$app_dir/app/Dockerfile" << 'EOF' FROM alpine:latest RUN apk --no-cache add ca-certificates WORKDIR /app COPY . . EXPOSE 8080 CMD ["./start.sh"] EOF # Create start script cat > "$app_dir/app/start.sh" << 'EOF' #!/bin/sh echo "Starting application..." # Add your startup command here exec "$@" EOF chmod +x "$app_dir/app/start.sh" echo "✓ Created package for $app_name" } # Process all unprocessed apps main() { local processed=0 local total=0 cd "$WORKSPACE_DIR" for dir in */; do if [ -d "$dir" ]; then local app_name=$(basename "$dir") ((total++)) if [ ! -d "$dir/app" ]; then create_package "$app_name" ((processed++)) fi fi done echo "" echo "Processed $processed new applications (total: $total)" } # Run main main "$@"