上个帖子里面说我太喜欢rust cargo又苦于 golang 没有官方项目管理器,于是写了go 的 cargo,即 gocar 。原本只是满足我自己的日常使用场景,结果两三天就有 50 多个 star ,才知道很多人也有与我类似的痛点。为了满足不同人的实际使用场景,我为 gocar 添加了可选配置文件.gocar.toml功能,实现覆盖内置命令和添加自定义命令的功能:
默认使用符合 Golang 最佳实践的项目结构和使用习惯,即内置命令
执行gocar init将在项目下生成.gocar.toml项目配置文件,实现自定义命令和功能,配置文件中的设置优先级高于 gocar 内置命令
例如,gocar new <appName>创建项目将不会生成.gocar.toml项目配置文件,需要手动执行gocar init,通过修改这个配置文件,可以实现:
覆盖 gocar 内置命令
gocar的实用功能提供 commands 接口,添加自定义命令
lint = "golangci-lint run"实现gocar lint获取类似cargo clippy的使用体验更多详细使用方法,可以在 https://github.com/uselibrary/gocar 中查看文档。欢迎 issue ,尤其是实际使用中的高频命令,以便我将其添加到内置命令中来提高使用效率和表现。
以下是.gocar.toml 的部分示例:
# 自定义命令
# 格式: 命令名 = "要执行的 shell 命令"
# 使用: gocar <命令名>
# 命令会在项目根目录下执行
[commands]
# 代码检查
vet = "go vet ./..."
# 代码格式化
fmt = "go fmt ./..."
# 运行测试
test = "go test -v ./..."
# lint = "golangci-lint run"
# doc = "godoc -http=:6060"
# proto = "protoc --go_out=. --go-grpc_out=. ./proto/*.proto"