cmd

package
v0.0.0-...-0fae6ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 30, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FromConsulCmd = &cobra.Command{
	Use:   "from-consul <host:port>",
	Short: "Start using config from Consul",
	Long:  `Start using config from the Consul key-value storage`,
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			err := cmd.Help()
			if err != nil {
				panic(err)
			}
			return
		}

		consulConfig.Address = args[0]
		client, err := consul.NewClient(&consulConfig)
		if err != nil {
			log.Fatal(err)
		}

		pair, _, err := client.KV().Get(consulKey, nil)
		if err != nil {
			log.Fatal(err)
		}

		if pair == nil {
			log.Fatal("Empty value for key " + consulKey)
		}

		datastr := string(pair.Value)
		if isConfigEnvVars {
			datastr = utils.SubstituteEnvVars(datastr)
		}

		var cfg config.Config
		if err := codec.Decode(datastr, &cfg, format); err != nil {
			log.Fatal(err)
		}

		info.Configuration = struct {
			Kind string `json:"kind"`
			Host string `json:"host"`
			Key  string `json:"key"`
		}{"consul", consulConfig.Address, consulKey}

		start(&cfg)
	},
}

*

  • FromConsul command
View Source
var FromFileCmd = &cobra.Command{
	Use:   "from-file <path>",
	Short: "Start using config from file",
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			cmd.Help()
			return
		}

		data, err := os.ReadFile(args[0])
		if err != nil {
			log.Fatal(err)
		}

		var cfg config.Config

		datastr := string(data)
		if isConfigEnvVars {
			datastr = utils.SubstituteEnvVars(datastr)
		}

		if err = codec.Decode(datastr, &cfg, format); err != nil {
			log.Fatal(err)
		}

		info.Configuration = struct {
			Kind string `json:"kind"`
			Path string `json:"path"`
		}{"file", args[0]}

		start(&cfg)
	},
}

*

  • FromFile Command
View Source
var FromUrlCmd = &cobra.Command{
	Use:   "from-url <url>",
	Short: "Start using config from URL",
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			cmd.Help()
			return
		}

		client := http.Client{}
		res, err := client.Get(args[0])
		if err != nil {
			log.Fatal(err)
		}

		defer res.Body.Close()

		content, err := io.ReadAll(res.Body)
		if err != nil {
			log.Fatal(err)
		}

		datastr := string(content)
		if isConfigEnvVars {
			datastr = utils.SubstituteEnvVars(datastr)
		}

		var cfg config.Config
		if err := codec.Decode(datastr, &cfg, format); err != nil {
			log.Fatal(err)
		}

		info.Configuration = struct {
			Kind string `json:"kind"`
			Url  string `json:"url"`
		}{"url", args[0]}

		start(&cfg)
	},
}

*

  • FromUrlCmd command
View Source
var RootCmd = &cobra.Command{
	Use:   "gobetween",
	Short: "Modern & minimalistic load balancer for the Cloud era",
	PersistentPreRun: func(cmd *cobra.Command, args []string) {
		if pidFilePath != "" {
			if err := pidfile.WritePidFile(pidFilePath); err != nil {
				fmt.Printf("Unable to write pidfile %s: %v\n", pidFilePath, err)
				os.Exit(1)
			}
		}
	},
	Run: func(cmd *cobra.Command, args []string) {
		if showVersion {
			fmt.Println(info.Version)
			return
		}

		if configPath == "" {
			cmd.Help()
			return
		}

		FromFileCmd.Run(cmd, []string{configPath})
	},
}

*

  • Root Command

Functions

func Execute

func Execute(f func(*config.Config))

*

  • Execute processing flags

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL