Skip to content

xuender/go-cli

Repository files navigation

go-cli

Action Report Card Lines of code godoc License

CLI tool for Golang.

🚀 Install

go install github.com/xuender/go-cli@latest

💡 Usage

init

Initialize the Golang project and create a default configuration file.

git clone url
cd dir
go-cli init

github

Initialize the github configuration files.

git-cli init github

gitee

Initialize the gitee configuration files.

git-cli init gitee

Use template.

go-cli init newName

generate

Generate source code including commands, tests, examples, structures, protobuf, etc.

cmd

Generate command support cobra and flag.

go-cli g c cmdName
go-cli g c cmdName -t flag
go-cli g c cmdName -t cobra

struct

Generate struct and new function.

go-cli g s pkg/Book

interface

Generate interface and comments.

go-cli g i pkg/Book

test

Generate unit tests for exposed functions in file or directory.

go-cli g t pkg/book.go

example

Generate test examples for exposed functions in file or directory.

go-cli g e pkg/book.go

proto

Generate protobuf and comments.

go-cli g p pb/Book
go-cli g p pb/BookType -t enum

struct

Struct related.

new

Create a new struct function by other struct.

go-cli s n book/book.go pb/book.pb.go
// NewBookByPbBook creates a new Book of pb.Book.
func NewBookByPbBook(elem *pb.Book) *Book {
  return &Book{
    ID:    elem.ID,
    Title: elem.Title,
  }
}

convert

Convert struct to other structs.

go-cli s c book/book.go pb/book.pb.go
// FromPbBook from pb.Book.
func (p *Book) FromPbBook(elem *pb.Book) *Book {
  p.ID = elem.ID
  p.Title = elem.Title

  return p
}

// ToPbBook to pb.Book.
func (p *Book) ToPbBook() *pb.Book {
  return &pb.Book{
    ID:    p.ID,
    Title: p.Title,
  }
}

template

Initialize template.

go-cli template 

Edit ~/.config/go-cli/*/*.tpl

New Initialization Template

mkdir ~/.config/go-cli/newName
vi ~/.config/go-cli/newName/xxx.tpl
# initialize by newName
go-cli init newName

👤 Contributors

Contributors

📝 License

© ender, 2023~time.Now

MIT LICENSE