我已经安装了go。然而,当我这样做时:
go get -u github.com/dmlittle/scenery
我得到:
# github.com/dmlittle/scenery/pkg/parser
go/src/github.com/dmlittle/scenery/pkg/parser/parser.go:98:20: cannot use &SceneryDefinition literal (type *SceneryDefinition) as type lexer.Definition in argument to participle.Lexer:
*SceneryDefinition does not implement lexer.Definition (wrong type for Lex method)
have Lex(io.Reader) (lexer.Lexer, error)
want Lex(string, io.Reader) (lexer.Lexer, error)
go/src/github.com/dmlittle/scenery/pkg/parser/parser.go:116:21: not enough arguments in call to p.ParseString
have (string, *Plan)
want (string, string, interface {}, ...participle.ParseOption)
go/src/github.com/dmlittle/scenery/pkg/parser/scanner.go:39:10: undefined: lexer.Errorf
go/src/github.com/dmlittle/scenery/pkg/parser/scanner.go:82:26: undefined: lexer.Errorf
有什么建议吗?
同样的问题,似乎prj使用dep。我已经修复了克隆repo,然后配置go模块以找到正确的项目依赖项。然后再次运行go get并构建成功:
~/go/src/github.com/dmlittle/scenery (master ✔) ᐅ go run main.go
# github.com/dmlittle/scenery/pkg/parser
pkg/parser/parser.go:98:20: cannot use &SceneryDefinition literal (type *SceneryDefinition) as type lexer.Definition in argument to participle.Lexer:
*SceneryDefinition does not implement lexer.Definition (wrong type for Lex method)
have Lex(io.Reader) (lexer.Lexer, error)
want Lex(string, io.Reader) (lexer.Lexer, error)
pkg/parser/parser.go:116:21: not enough arguments in call to p.ParseString
have (string, *Plan)
want (string, string, interface {}, ...participle.ParseOption)
pkg/parser/scanner.go:39:10: undefined: lexer.Errorf
pkg/parser/scanner.go:82:26: undefined: lexer.Errorf
初始模式:
~/go/src/github.com/dmlittle/scenery (master ✔) ᐅ go mod init
go: creating new go.mod: module github.com/dmlittle/scenery
go: copying requirements from Gopkg.lock
检查相关性:
go mod tidy
go: downloading github.com/spf13/cobra v0.0.3
go: downloading github.com/fatih/color v1.7.0
....
安装包:
go get -u github.com/dmlittle/scenery
按预期工作:
~/go/src/github.com/dmlittle/scenery (master ✘)✭ ᐅ ./scenery
Usage:
scenery [flags]
Examples:
terraform plan | scenery
Flags:
-h, --help help for scenery
-n, --no-color Print output without color
--version version for scenery