Files
gh-vanman2024-cli-builder-p…/skills/cli-patterns/scripts/add-command.sh
2025-11-30 09:04:14 +08:00

53 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Add a new command to existing CLI
set -euo pipefail
if [ $# -lt 2 ]; then
echo "Usage: $0 <app-name> <command-name> [category]"
echo "Example: $0 myapp backup Deploy"
exit 1
fi
APP_NAME="$1"
COMMAND_NAME="$2"
CATEGORY="${3:-General}"
if [ ! -d "$APP_NAME" ]; then
echo "Error: Directory $APP_NAME not found"
exit 1
fi
cd "$APP_NAME"
# Create command implementation
FUNC_NAME="${COMMAND_NAME}Command"
cat >> commands.go <<EOF
func ${FUNC_NAME}(c *cli.Context) error {
fmt.Println("Executing ${COMMAND_NAME} command...")
// TODO: Implement ${COMMAND_NAME} logic
return nil
}
EOF
# Generate command definition
cat > /tmp/new_command.txt <<EOF
{
Name: "${COMMAND_NAME}",
Category: "${CATEGORY}",
Usage: "TODO: Add usage description",
Action: ${FUNC_NAME},
},
EOF
echo "✅ Command stub created!"
echo ""
echo "Next steps:"
echo "1. Add the following to your Commands slice in main.go:"
cat /tmp/new_command.txt
echo ""
echo "2. Implement the logic in commands.go:${FUNC_NAME}"
echo "3. Add flags if needed"