Generate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
Generates robust trap handlers for shell script cleanup, error management, and graceful signal handling.
npx claudepluginhub a5c-ai/babysitterThis skill is limited to using the following tools:
README.mdGenerate trap handlers for shell scripts.
#!/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"
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 an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.