[Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理

Posted taoshihan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理相关的知识,希望对你有一定的参考价值。

gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多

go get github.com/urfave/cli

package main

import (
    "fmt"
    "log"
    "os"

    "github.com/urfave/cli"
)

func main() {
    app := cli.NewApp()
    var flags []cli.Flag
    flags = append(flags, cli.StringFlag{
        Name:  "host",
        Value: "0.0.0.0",
        Usage: "bind host",
    }, cli.IntFlag{
        Name:  "port,p",
        Value: 5090,
        Usage: "bind port",
    }, cli.StringFlag{
        Name:  "env,e",
        Value: "prod",
        Usage: "runtime environment, dev|test|prod",
    })
    app.Flags = flags

    app.Action = func(c *cli.Context) error {

        fmt.Println("host:", c.String("host"))
        fmt.Println("port:", c.String("port"))
        fmt.Println("env:", c.String("env"))
        return nil
    }

    err := app.Run(os.Args)
    if err != nil {
        log.Fatal(err)
    }
}

技术图片

以上是关于[Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理的主要内容,如果未能解决你的问题,请参考以下文章

[Go] gocron源码阅读-空接口类型interface{}

[Go] gocron源码阅读-go语言中的切片和类型综合

[日常] gocron源码阅读-使用go mod管理依赖源码启动gocron

[Go] gocron源码阅读-groutine与channel应用到信号捕获

[Linux]gocron定时任务平台的部署

Syncthing源码解析 - 第三方库