- Matrix like effect in your terminal
- called with
no arguments
gmatrix should fill your current shell with all that good matrix - Once you're done quit with
Ctrl-C
We welcome community contributions to this project.
Please read Contributor Guide for more information on how to get started.
请阅读有关 贡献者指南 以获取更多如何入门的信息
- install of go tools
# install at ${GOPATH}/bin
$ go install -v github.com/sinlovgo/gmatrix/cmd/gmatrix@latest
- use tcell to render CLI
- more perfect test case coverage
- more perfect benchmark case
- minimum go version: go 1.19
- change
go 1.19
,^1.19
,1.19.10-buster
,1.19.10
to new go version
lib | version |
---|---|
https://github.com/stretchr/testify | v1.8.4 |
https://github.com/sebdah/goldie | v2.5.3 |
https://github.com/gookit/color | v1.5.3 |
https://github.com/bar-counter/slog | v1.4.0 |
https://github.com/urfave/cli/ | v2.23.7 |
- more libs see go.mod
# install at ${GOPATH}/bin
$ go install -v github.com/sinlovgo/gmatrix/cmd/gmatrix@latest
# install version v1.0.0
$ go install -v github.com/sinlovgo/gmatrix/cmd/gmatrix@v1.0.0
- use this template, replace list below and add usage
github.com/sinlovgo/gmatrix
to your package namesinlovgo
to your owner namegmatrix
to your project name
in go mod project
# warning use private git host must set
# global set for once
# add private git host like github.com to evn GOPRIVATE
$ go env -w GOPRIVATE='github.com'
# use ssh proxy
# set ssh-key to use ssh as http
$ git config --global url."git@github.com:".insteadOf "http://github.com/"
# or use PRIVATE-TOKEN
# set PRIVATE-TOKEN as gitlab or gitea
$ git config --global http.extraheader "PRIVATE-TOKEN: {PRIVATE-TOKEN}"
# set this rep to download ssh as https use PRIVATE-TOKEN
$ git config --global url."ssh://github.com/".insteadOf "https://github.com/"
# before above global settings
# test version info
$ git ls-remote -q http://github.com/sinlovgo/gmatrix.git
# test depends see full version
$ go list -mod readonly -v -m -versions github.com/sinlovgo/gmatrix
# or use last version add go.mod by script
$ echo "go mod edit -require=$(go list -mod=readonly -m -versions github.com/sinlovgo/gmatrix | awk '{print $1 "@" $NF}')"
$ echo "go mod vendor"
# It needs to be executed after the first use or update of dependencies.
$ make init dep
- test code
$ make test testBenchmark
add main.go file and run
# run and shell help
$ make devHelp
# run at CLI_VERBOSE=true
$ make dev
# run at ordinary mode
$ make run
- ci to fast check
# check style at local
$ make style
# run ci at local
$ make ci
# then test build as test/Dockerfile
$ make dockerTestRestartLatest
# clean test build
$ make dockerTestPruneLatest
# more info see
$ make helpDocker
.
├── Dockerfile # ci docker build
├── Dockerfile.s6 # local docker build
├── Makefile # make entry
├── README.md
├── build # build output
├── cmd
│ └── gmatrix # command line main package install and dev entrance
│ ├── main.go # command line entry
│ └── main_test.go # integrated test entry
├── command # command line package
│ ├── TestMain.go # common entry in unit test package
│ ├── flag.go # global flag
│ ├── global.go # global command
│ ├── global_test.go # global command unit test
│ ├── golder_data_test.go # unit test test data case
│ ├── init_test.go # unit test initialization tool
│ └── subcommand_new # subcommandPackage new
├── constant # constant package
│ └── env.go # constant environment variable
├── doc # command line tools documentation
│ └── cmd.md
├── go.mod
├── go.sum
├── package.json # command line profile information
├── resource.go # embed resource
├── utils # toolkit package
│ ├── env_kit # environment variables toolkit
│ ├── log # log toolkit
│ ├── pkgJson # package.json toolkit
│ └── urfave_cli # urfave/cli toolkit
├── vendor
└── z-MakefileUtils # make toolkit
- cli log use github.com/bar-counter/slog
- open debug log by env
CLI_VERBOSE=true
or global flag--verbose
- open debug log by env
package foo
func action(c *cli.Context) error {
slog.Debug("SubCommand [ new ] start") // this not show at CLI_VERBOSE=false
if c.Bool("lib") {
slog.Info("new lib mode")
}
return nil
}