79 lines
1.7 KiB
Bash
79 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
# Example: Programmatic script generation using the API
|
|
# Demonstration of how to integrate the tool into automation workflows
|
|
|
|
# set -euo pipefail
|
|
|
|
# Start the server in the background
|
|
./argparse-builder &
|
|
SERVER_PID=$!
|
|
|
|
# Wait for server to be ready
|
|
sleep 2
|
|
|
|
# Define the script configuration
|
|
cat > config.json << 'EOF'
|
|
{
|
|
"header": "Database Backup Tool v1.0 - Automated PostgreSQL backup",
|
|
"arguments": [
|
|
{
|
|
"params": "-H --host HOST",
|
|
"command": "host",
|
|
"helpText": "Database host (default: localhost)"
|
|
},
|
|
{
|
|
"params": "-p --port NUM",
|
|
"command": "port",
|
|
"helpText": "Database port (default: 5432)"
|
|
},
|
|
{
|
|
"params": "-d --database NAME",
|
|
"command": "database",
|
|
"helpText": "Database name to backup"
|
|
},
|
|
{
|
|
"params": "-u --user NAME",
|
|
"command": "user",
|
|
"helpText": "Database username"
|
|
},
|
|
{
|
|
"params": "-o --output PATH",
|
|
"command": "output",
|
|
"helpText": "Output directory for backups"
|
|
},
|
|
{
|
|
"params": "-c --compress",
|
|
"command": "compress",
|
|
"helpText": "Compress backup with gzip"
|
|
},
|
|
{
|
|
"params": "-v --verbose",
|
|
"command": "verbose",
|
|
"helpText": "Enable verbose logging"
|
|
}
|
|
]
|
|
}
|
|
EOF
|
|
|
|
# Generate the script
|
|
curl -s -X POST http://localhost:8080/generate \
|
|
-H "Content-Type: application/json" \
|
|
-d @config.json \
|
|
-o db_backup.sh
|
|
|
|
# Make it executable
|
|
chmod +x db_backup.sh
|
|
|
|
echo "Generated script: db_backup.sh"
|
|
echo ""
|
|
echo "Test it with: ./db_backup.sh --help"
|
|
|
|
# Cleanup
|
|
kill $SERVER_PID 2>/dev/null || true
|
|
rm config.json
|
|
|
|
echo ""
|
|
echo "Generated script contents:"
|
|
echo "=========================="
|
|
cat db_backup.sh
|