Khung giao diện dòng lệnh (CLI) chung cho các công cụ phần mềm Ubuntu. Các tùy chọn tiêu chuẩn, định dạng đầu ra và định dạng Markdown cho các vấn đề trên GitHub.

$ go get www.ubuntusoftware.net/pkg/cli

Package Information

Version
v0.1.0
License
MIT
Author
Gerard Webb
Last Updated
tháng 12 16, 2025

Tính năng

  • *Cờ tiêu chuẩn - --github-issue, --verbose, --version có sẵn ngay từ đầu
  • Định dạng đầu ra - Bảng, danh sách, tiêu đề, khối mã
  • *Chế độ Markdown - Đầu ra tương thích với GitHub Issue khi sử dụng tùy chọn --github-issue
  • Đa nền tảng - Mở trình duyệt trên macOS, Linux, Windows
  • Xử lý ngữ cảnh - Thời gian chờ và hủy bỏ

Cách sử dụng

package main

import (
    "fmt"
    "os"

    "www.ubuntusoftware.net/pkg/cli"
)

func main() {
    app := cli.New("myapp", "v1.0.0")

    err := app.Run(os.Args[1:], func(c *cli.Context) error {
        if len(c.Args) == 0 {
            return fmt.Errorf("command required")
        }

        switch c.Args[0] {
        case "list":
            c.Header("Items")
            table := c.NewTable("NAME", "VALUE")
            table.Row("foo", "bar")
            table.Row("baz", "qux")
            table.Flush()

        case "open":
            return c.Open("https://example.com")
        }

        return nil
    })

    if err != nil {
        fmt.Fprintf(os.Stderr, "ERROR: %v\n", err)
        os.Exit(1)
    }
}

Chế độ đầu ra

Đầu ra bình thường:

Items
=====
NAME    VALUE
foo     bar
baz     qux

Với tùy chọn --github-issue:

## Items

| NAME | VALUE |
|--------|--------|
| foo | bar |
| baz | qux |

Phương pháp bối cảnh

MethodDescription
c.Header(title)Print section header
c.KeyValue(key, val)Print key-value pair
c.NewTable(headers...)Create table
c.List(items...)Print bulleted list
c.Code(code)Print code block
c.Success(msg)Print success message
c.Warning(msg)Print warning
c.Open(url)Open URL in browser