gmatrix

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

README

ci

go mod version GoDoc goreportcard

GitHub license codecov GitHub latest SemVer tag) GitHub release)

for what

  • 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

Contributing

Contributor Covenant GitHub contributors

We welcome community contributions to this project.

Please read Contributor Guide for more information on how to get started.

请阅读有关 贡献者指南 以获取更多如何入门的信息

Features

  • 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

env

  • minimum go version: go 1.19
  • change go 1.19, ^1.19, 1.19.10-buster, 1.19.10 to new go version

libs

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

usage

# 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 name
    • sinlovgo to your owner name
    • gmatrix to your project name

dev

depends

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"

local dev

# 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

docker

# then test build as test/Dockerfile
$ make dockerTestRestartLatest
# clean test build
$ make dockerTestPruneLatest

# more info see
$ make helpDocker

EngineeringStructure

.
├── 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

log

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
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MatrixCharset string
View Source
var PackageJson string

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cmd
cli
internal
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL