需要带有go-flags的位置参数

时间:2017-11-05 01:36:27

标签: go arguments command-line-interface

我正在编写一个CLI工具,并选择了github.com/jessevdk/go-flags进行CLI arg解析。我试图弄清楚强制定位arg的最佳方法。目前,我有以下内容:

func main() {
    args, err := flags.Parse(&opts)
    if err != nil {
        panic(err)
    }

    if len(args) < 1 {
        panic("An s3 bucket is required")
    }
}

这样可行,但它不会导致显示帮助输出,就像标记为"required:true"的情况一样。有没有办法通过手动调用&#34;打印帮助&#34;来复制该行为?功能或设置所需数量的位置参数?

1 个答案:

答案 0 :(得分:1)

使用os.Args会有帮助吗?例如:

package main

import (
    "fmt"
    "os"
)

const Usage = `Usage:
%s one two
`

func main() {

    if len(os.Args) != 3 {
        fmt.Printf(Usage, os.Args[0])
        os.Exit(-1)
    }

    //run program
}

os.Args持有命令行参数,从程序名称开始。

https://play.golang.org/p/Le9EMxmw9k