亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓每個眼鏡蛇命令解析自己的標志?獲取初始化循環(預期,但如何避免?)

如何讓每個眼鏡蛇命令解析自己的標志?獲取初始化循環(預期,但如何避免?)

Go
忽然笑 2023-05-15 09:46:28
我正在遵循https://github.com/spf13/cobra#flags上的指南,但我對那里的一些內容感到困惑。我有一些服務(rest api、電子郵件服務、事件),我正在嘗試做這樣的事情:go run *.go rest -env DEV -p 3000go run *.go events -env DEV -p 3001我正在關注 github 頁面,所以我定義了我的 rootCmd 和 restCmd:var rootCmd = &cobra.Command{    Use: "myappname",}var restCmd = &cobra.Command{    Use:   "rest",    Short: "REST API",    Long:  "REST API",    Run:   runRest,}在runRest方法中,我應該做類似的事情嗎var env stringrestCmd.Flags().StringVarP(&env, "env", "env", "", "environment")請告訴我。謝謝
查看完整描述

1 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

每個子命令都可以有自己的標志。您可以按以下方式執行此操作:


package main


import (

    "fmt"

    "log"


    "github.com/spf13/cobra"

)


var rootCmd = &cobra.Command{

    Use: "app",

}


func NewCmdRest() *cobra.Command {

    var env string

    var restCmd = &cobra.Command{

        Use: "rest",

        Run: func(cmd *cobra.Command, args []string) {

            fmt.Println("rest:", env)

        },

    }


    restCmd.Flags().StringVarP(&env, "env", "e", "", "environment")

    return restCmd

}


func NewCmdEvent() *cobra.Command {

    var env string

    var eventCmd = &cobra.Command{

        Use: "event",

        Run: func(cmd *cobra.Command, args []string) {

            fmt.Println("event:", env)

        },

    }


    eventCmd.Flags().StringVarP(&env, "env", "e", "", "environment")

    return eventCmd

}


func init() {

    rootCmd.AddCommand(NewCmdRest())

    rootCmd.AddCommand(NewCmdEvent())

}


func main() {

    if err := rootCmd.Execute(); err != nil {

        log.Fatal(err)

    }

}


查看完整回答
反對 回復 2023-05-15
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號