Go命令行类库推荐

项目描述

go命令行管理工具,go 原生提供了flag管理命令行。使用起来诸多不便,所以整理如下框架实现。

使用入门

第〇步: 获取command

go get -u github.com/wolferhua/command

第一步: 建立命令行文件目录

mkdir -p project/commands

第二步: 创建命令文件 commands/test.go

package commands

import (
    "fmt"
    "github.com/wolferhua/command"
)

type Test struct {
    command.Cmd
    B bool
}

//设置名称
func (c *Test) GetName() string {
    return "test"
}

//设置描述
func (c *Test) GetDesc() string {
    return "test demo"
}
//运行
func (c *Test) Run() {
    fmt.Println("test is run")
    fmt.Println(c.B)
}

//参数设置
func (c *Test) SetFlags() {
    c.BoolVar(&c.B, "b", false, "bool test")
}

第三步: 创建命令注册文件 commands/commands.go

package commands

import "github.com/wolferhua/command"

func init() {
    command.Registry(
        &Test{},
    )
}

第四步: main中运行

package main

import (
    "github.com/wolferhua/command"
    _ "github.com/wolferhua/command/example/commands" //注册commands
)

func main() {
    if command.Run() {
        //command 运行了。可以退出程序
    }else{
        //没有运行,可以运行其他操作
    }
}

第五步: 运行

参数运行

go run example/main.go test -b
# test is run
# true //接收数据

不带参数运行

go run example/main.go test 
# test is run
# false //没有数据

你可能感兴趣的:(Go命令行类库推荐)