Back to skills
SKILL.md
Trap Handler Generator
ASecurityGenerate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
- 1,760 stars
- 0 votes
- 0 copies
- 0 views
- Added September 2, 2026
Works with
Security analysis
93/100- Performs destructive filesystem operations
Pro scans all 2 files and shows the line behind each finding
npx -y skills add a5c-ai/babysitter --skill trap-handler-generator --agent claude-codeAre you the author of Trap Handler Generator?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/a5c-ai-trap-handler-generator-babysitter)---
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
Files in this skill
- README.md
- SKILL.md
Attribution
Comments
Loading comments…