Trap Handler Generator
SkillDev toolsGenerate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Trap Handler Generator skill
What this skill tells your AI
The instructions your AI receives, as published by a5c-ai/babysitter in library/specializations/cli-mcp-development/skills/trap-handler-generator/SKILL.md and read by ahel’s review.
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
#!/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
Signals
- GitHub stars
- 2k
- Forks
- 112
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
trap-handler-generator- Source
- github.com/a5c-ai/babysitter