Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -41% | 0% |
Generate trap handlers for shell scripts.
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"
Other measured skills in the registry, with their headline benchmark lift.