我不确定这将如何工作,但我基本上是在尝试编写一个命令行应用程序,我可以从中运行命令和子命令。我正在使用这个流行的第三方库来解析命令行参数:
https://github.com/urfave/cli
我的问题是我有一个项目文件夹,我的 .go 文件将存放在其中:
MyProject
因此,即使在我的 main.go 文件中的代码中,使用他们的示例,我也有:
package main
import (
"fmt"
"os"
"github.com/urfave/cli"
)
func main() {
app := cli.NewApp()
app.Name = "greet"
app.Usage = "fight the loneliness!"
app.Action = func(c *cli.Context) error {
fmt.Println("Hello friend!")
return nil
}
app.Run(os.Args)
}
当我跑步时go install,
在我的 $GOPATH/bin 目录中,我实际上构建了 MyProject。然后当我MyProject从终端运行时,我得到
USAGE:
myproject [global options] command [command options] [arguments...]
但实际上,我首先不需要myproject命令。有没有办法通常使用命令行应用程序或第三方包来创建命令行应用程序,以便我可以从命令行运行greet而不是myproject作为第一个命令运行?
长风秋雁
相关分类