跳到主要内容
知仓学习社ZHICANG

trap-handler-generator

Generate trap handlers for cleanup, signal handling, and graceful shutdown in shell scripts.

不碰外部(只输出文字)无严重或高危命中a5c-ai/babysitter

它会碰到什么

扫了多少2 个文本文件,3 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

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

#!/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

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,796
本站分层T1
该仓技能数2115
原文件路径library/specializations/cli-mcp-development/skills/trap-handler-generator/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 2115 个技能