Generate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add a5c-ai/babysitter --skill trap-handler-generator --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Trap Handler Generator?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/a5c-ai-trap-handler-generator-babysitter)More formats (shields.io, HTML) on the badges page.
---
name: trap-handler-generator
description: Generate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
graph:
domains: [domain:software-engineering]
specializations: [specialization:cli-mcp-development]
skillAreas: [skill-area:cli-design, skill-area:command-line-interface-tools]
roles: [role:backend-engineer, role:platform-engineer]
workflows: [workflow:feature-development]
topics: [topic:developer-experience]
---
# Trap Handler Generator
Generate trap handlers for shell scripts.
## Capabilities
- Generate cleanup trap handlers
- Implement signal handling
- Create graceful shutdown logic
- Set up resource cleanup
- Handle nested traps
- Generate error handlers
## Generated Patterns
```bash
#!/usr/bin/env bash
# Temporary resources to clean up
declare -a CLEANUP_ITEMS=()
CLEANUP_DONE=false
# Register cleanup item
register_cleanup() {
CLEANUP_ITEMS+=("$1")
}
# Cleanup function
cleanup() {
if [[ "$CLEANUP_DONE" == true ]]; then
return
fi
CLEANUP_DONE=true
local exit_code=$?
echo "Cleaning up..."
for item in "${CLEANUP_ITEMS[@]}"; do
if [[ -d "$item" ]]; then
rm -rf "$item" 2>/dev/null
elif [[ -f "$item" ]]; then
rm -f "$item" 2>/dev/null
elif [[ -n "$item" ]]; then
# Command to run
eval "$item" 2>/dev/null
fi
done
return $exit_code
}
# Error handler
on_error() {
local exit_code=$?
local line_no=$1
echo "Error on line ${line_no}: command exited with ${exit_code}" >&2
cleanup
exit $exit_code
}
# Signal handlers
on_sigint() {
echo -e "\nInterrupted by user"
cleanup
exit 130
}
on_sigterm() {
echo "Terminated"
cleanup
exit 143
}
# Set up traps
trap cleanup EXIT
trap 'on_error ${LINENO}' ERR
trap on_sigint INT
trap on_sigterm TERM
# Usage
TEMP_DIR=$(mktemp -d)
register_cleanup "$TEMP_DIR"
TEMP_FILE=$(mktemp)
register_cleanup "$TEMP_FILE"
register_cleanup "docker stop mycontainer"
```
## Target Processes
- shell-script-development
- error-handling-user-feedback
- cross-platform-cli-compatibility
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!