Generate bash script templates with best practices including error handling, argument parsing, logging, and portability considerations.
Generates robust bash script templates with best practices for error handling, argument parsing, and portability.
npx claudepluginhub a5c-ai/babysitterThis skill is limited to using the following tools:
README.mdGenerate bash script templates with best practices.
Invoke this skill when you need to:
| Parameter | Type | Required | Description |
|---|---|---|---|
| scriptName | string | Yes | Script name |
| description | string | Yes | Script description |
| arguments | array | No | Script arguments |
| functions | array | No | Functions to include |
#!/usr/bin/env bash
#
# <scriptName> - <description>
#
# Usage: <scriptName> [options] <arguments>
#
set -euo pipefail
IFS=$'\n\t'
# Script directory
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly SCRIPT_NAME="$(basename "${BASH_SOURCE[0]}")"
# Colors (if terminal supports)
if [[ -t 1 ]]; then
readonly RED='\033[0;31m'
readonly GREEN='\033[0;32m'
readonly YELLOW='\033[0;33m'
readonly BLUE='\033[0;34m'
readonly NC='\033[0m'
else
readonly RED='' GREEN='' YELLOW='' BLUE='' NC=''
fi
# Logging functions
log_info() { echo -e "${BLUE}[INFO]${NC} $*"; }
log_success() { echo -e "${GREEN}[OK]${NC} $*"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*" >&2; }
log_error() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
die() { log_error "$*"; exit 1; }
# Cleanup on exit
cleanup() {
# Add cleanup tasks here
:
}
trap cleanup EXIT
# Usage
usage() {
cat <<EOF
Usage: ${SCRIPT_NAME} [options] <argument>
<description>
Options:
-h, --help Show this help message
-v, --verbose Enable verbose output
-d, --dry-run Show what would be done
-f, --force Force operation
-o, --output Output file path
Arguments:
argument Required argument description
Examples:
${SCRIPT_NAME} -v input.txt
${SCRIPT_NAME} --output result.txt input.txt
EOF
}
# Parse arguments
parse_args() {
local OPTIND opt
while getopts ":hvdfo:-:" opt; do
case "${opt}" in
h) usage; exit 0 ;;
v) VERBOSE=true ;;
d) DRY_RUN=true ;;
f) FORCE=true ;;
o) OUTPUT="${OPTARG}" ;;
-)
case "${OPTARG}" in
help) usage; exit 0 ;;
verbose) VERBOSE=true ;;
dry-run) DRY_RUN=true ;;
force) FORCE=true ;;
output=*) OUTPUT="${OPTARG#*=}" ;;
*) die "Unknown option: --${OPTARG}" ;;
esac
;;
:) die "Option -${OPTARG} requires an argument" ;;
?) die "Unknown option: -${OPTARG}" ;;
esac
done
shift $((OPTIND - 1))
# Required arguments
if [[ $# -lt 1 ]]; then
usage
die "Missing required argument"
fi
ARGUMENT="$1"
}
# Defaults
VERBOSE=${VERBOSE:-false}
DRY_RUN=${DRY_RUN:-false}
FORCE=${FORCE:-false}
OUTPUT=${OUTPUT:-}
# Main function
main() {
parse_args "$@"
if [[ "${VERBOSE}" == true ]]; then
log_info "Verbose mode enabled"
fi
if [[ "${DRY_RUN}" == true ]]; then
log_warn "Dry run mode - no changes will be made"
fi
log_info "Processing: ${ARGUMENT}"
# Main logic here
log_success "Done!"
}
main "$@"
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.