我正在用Go开发一个小工具.最近,我注意到需要从shell脚本调用该工具,因为它使用的是shell函数.
假设我的工具被调用atool.所以,go build生成一个二进制文件atool,我的工具有一个Go结构github.com/myaccount/atool.现在,我想构建atool-cli二进制文件go build,并从shell脚本调用它atool.我怎样才能做到这一点?
我想到的唯一方法是改变结构github.com/myaccuont/atool-cli.但我不想这样做,因为已经宣布了,而且,路径似乎有点滑稽的名字.
eli*_*rar 12
只是为了让我的评论"正式":
go build -o atool-cli github.com/you/atool
Run Code Online (Sandbox Code Playgroud)
将组件自身打包为库,并提供主包的一种方法是将其主要入口点放在子目录中.
你可以有一个main包github.com/myaccount/atool/atool-cli,导入github.com/myaccount/atool和实现func main().一些包含多个命令的包甚至都有一个/cmd/目录,其中包含多个可以构建的cli工具(参见camlistore示例)