go-cli

📁 pluginagentmarketplace/custom-plugin-go 📅 14 days ago
2
总安装量
2
周安装量
#66712
全站排名
安装命令
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-go --skill go-cli

Agent 安装分布

amp 2
gemini-cli 2
claude-code 2
github-copilot 2
codex 2
kimi-cli 2

Skill 文档

Go CLI Skill

Supplementary CLI patterns and utilities.

Overview

Additional CLI patterns for argument parsing, progress indicators, and user interaction.

Parameters

Parameter Type Required Default Description
feature string yes Feature: “progress”, “prompt”, “color”

Core Topics

Argument Validation

var cmd = &cobra.Command{
    Use:   "process [file]",
    Args:  cobra.ExactArgs(1),
    RunE: func(cmd *cobra.Command, args []string) error {
        file := args[0]
        if _, err := os.Stat(file); os.IsNotExist(err) {
            return fmt.Errorf("file not found: %s", file)
        }
        return process(file)
    },
}

Progress Bar

func DownloadWithProgress(url, dest string) error {
    resp, err := http.Get(url)
    if err != nil {
        return err
    }
    defer resp.Body.Close()

    file, err := os.Create(dest)
    if err != nil {
        return err
    }
    defer file.Close()

    bar := progressbar.DefaultBytes(resp.ContentLength, "downloading")
    _, err = io.Copy(io.MultiWriter(file, bar), resp.Body)
    return err
}

Interactive Prompt

func ConfirmAction(message string) bool {
    reader := bufio.NewReader(os.Stdin)
    fmt.Printf("%s [y/N]: ", message)

    input, _ := reader.ReadString('\n')
    input = strings.TrimSpace(strings.ToLower(input))

    return input == "y" || input == "yes"
}

Colored Output

import "github.com/fatih/color"

var (
    successColor = color.New(color.FgGreen).SprintFunc()
    errorColor   = color.New(color.FgRed).SprintFunc()
    warnColor    = color.New(color.FgYellow).SprintFunc()
)

func PrintSuccess(msg string) {
    fmt.Println(successColor("✓"), msg)
}

func PrintError(msg string) {
    fmt.Fprintln(os.Stderr, errorColor("✗"), msg)
}

Troubleshooting

Failure Modes

Symptom Cause Fix
Colors not showing No TTY Check isatty
Input hangs Stdin closed Handle EOF

Usage

Skill("go-cli")