cmd

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GetCmd = &cobra.Command{
	Use:     "get [flags] resource",
	Short:   "Retrieve a Kapow! resource",
	Long:    "Retrieve a Kapow! resource for the current request",
	Args:    cobra.ExactArgs(1),
	PreRunE: handlerIDRequired,
	Run: func(cmd *cobra.Command, args []string) {
		dataURL, _ := cmd.Flags().GetString("data-url")
		handler, _ := cmd.Flags().GetString("handler")

		err := client.GetData(dataURL, handler, args[0], os.Stdout)
		if err != nil {
			log.Fatal(err)
		}
	},
}

GetCmd is the command line interface for get kapow data operation

View Source
var RouteCmd = &cobra.Command{
	Use: "route [action]",
}

RouteCmd is the command line interface for kapow route handling

View Source
var ServerCmd = &cobra.Command{
	Use:   "server [optional flags] [optional pow file(s)]",
	Short: "Start a kapow server",
	Long: `Start a Kapow server with a client interface, a data interface	and an
	admin interface`,
	PreRunE: validateServerCommandArguments,
	Run: func(cmd *cobra.Command, args []string) {
		var sConf server.ServerConfig = server.ServerConfig{}
		sConf.UserBindAddr, _ = cmd.Flags().GetString("bind")
		sConf.ControlBindAddr, _ = cmd.Flags().GetString("control-bind")
		sConf.DataBindAddr, _ = cmd.Flags().GetString("data-bind")

		sConf.CertFile, _ = cmd.Flags().GetString("certfile")
		sConf.KeyFile, _ = cmd.Flags().GetString("keyfile")

		sConf.ClientAuth, _ = cmd.Flags().GetBool("clientauth")
		sConf.ClientCaFile, _ = cmd.Flags().GetString("clientcafile")
		debug, _ := cmd.Flags().GetBool("debug")

		if _, exist := os.LookupEnv("KAPOW_DATA_URL"); !exist {
			os.Setenv("KAPOW_DATA_URL", "http://"+sConf.DataBindAddr)
		}
		if _, exist := os.LookupEnv("KAPOW_CONTROL_URL"); !exist {
			os.Setenv("KAPOW_CONTROL_URL", "http://"+sConf.ControlBindAddr)
		}

		if debug {
			logger.RegisterLogger(logger.SCRIPTS, nil)
		}

		server.StartServer(sConf)

		if len(args) > 0 {
			powfile := args[0]
			_, err := os.Stat(powfile)
			if os.IsNotExist(err) {
				log.Fatalf("%s does not exist", powfile)
			}
			log.Printf("Running powfile: %q\n", powfile)
			kapowCMD := exec.Command("bash", powfile)
			kapowCMD.Stdout = os.Stdout
			kapowCMD.Stderr = os.Stderr
			kapowCMD.Env = os.Environ()

			err = kapowCMD.Run()
			if err != nil {
				log.Fatal(err)
			}
			fmt.Println()
			log.Printf("Done running powfile: %q\n", powfile)
		}

		if debug {
			processLogs()
		} else {
			select {}
		}
	},
}

ServerCmd is the command line interface for kapow server

View Source
var SetCmd = &cobra.Command{
	Use:     "set [flags] resource [value]",
	Short:   "Set a Kapow! resource value",
	Long:    "Set a Kapow! resource value for the current request",
	Args:    cobra.RangeArgs(1, 2),
	PreRunE: handlerIDRequired,
	Run: func(cmd *cobra.Command, args []string) {
		var r io.Reader
		dataURL, _ := cmd.Flags().GetString("data-url")
		handler, _ := cmd.Flags().GetString("handler")
		path, args := args[0], args[1:]

		if len(args) == 1 {
			r = strings.NewReader(args[0])
		} else {
			r = os.Stdin
		}

		if err := client.SetData(dataURL, handler, path, r); err != nil {
			log.Fatal(err)
		}
	},
}

SetCmd is the command line interface for set kapow data operation

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

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