Go 命令行应用开发包:Odin
jopen
11年前
Odin 是一个 Go 语言开发包,用于帮助构建自文档的命令行应用。
支持Value类型
| Value Type | Basic Definition Method | Pointer Defintion Method |
|---|---|---|
| bool | DefineBoolFlag | DefineBoolFlagVar |
| float64 | DefineFloat64Flag | DefineFloat64FlagVar |
| int | DefineIntFlag | DefineIntFlagVar |
| int64 | DefineInt64Flag | DefineInt64FlagVar |
| string | DefineStringFlag | DefineStringFlagVar |
| time.Duration | DefineDurationFlag | DefineDurationFlagVar |
| uint | DefineUintFlag | DefineUintFlagVar |
| uint64 | DefineUint64Flag | DefineUint64FlagVar |
Flags also support aliases: aliases are always defined as a rune to limit them to one character.
FlagAlias(alias rune, flagName string) 支持:
-
必要参数 Required Parameters
-
类型标志和选项解析 Typed Flag/Option Parsing
-
标志别名 Flag Aliasing
-
子命令 DSL 用于创建完整的 CLI 应用
示例:
package main import ( "fmt" "github.com/jwaldrip/odin/cli" ) // CLI is the odin CLI var CLI = NewCLI("0.0.1", "my cli", func(c cli.Command){ if c.Flag("gopher").Get() == true { fmt.Println("IT IS JUST GOPHERTASTIC!!!") } else { fmt.Println("It is just fine") } }) func init(){ CLI.DefineBoolFlag("gopher", false, "is it gophertastic?") CLI.FlagAlias('g', "gopher") } func main(){ CLI.Start() }