request

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Command = clapp.Command{
	Cobra: &cobra.Command{
		Use:   "request",
		Short: "Request mode",
		Long:  global.LENS_BANNER + "\n\n" + global.LENS_TITLE + " - Request Mode",
		RunE: func(cmd *cobra.Command, args []string) error {
			var err error

			// Get flag values from command
			var configFile string
			var envFile string
			var path string
			var search []string
			var name string
			var all bool

			configFile, err = cmd.Flags().GetString("configFile")
			if err != nil {
				slog.Error("could not find flag", "flag", "configFile")
				return err
			}

			envFile, err = cmd.Flags().GetString("envFile")
			if err != nil {
				slog.Error("could not find flag", "flag", "envFile")
				return err
			}

			path, err = cmd.Flags().GetString("path")
			if err != nil {
				slog.Error("could not find flag", "flag", "path")
				return err
			}

			search, err = cmd.Flags().GetStringSlice("search")
			if err != nil {
				slog.Error("could not find flag", "flag", "search")
				return err
			}

			name, err = cmd.Flags().GetString("name")
			if err != nil {
				slog.Error("could not find flag", "flag", "name")
				return err
			}

			all, err = cmd.Flags().GetBool("all")
			if err != nil {
				slog.Error("could not find flag", "flag", "all")
				return err
			}

			var logLevelFlag string
			logLevelFlag, err = cmd.Flags().GetString("loglevel")
			if err != nil {
				slog.Error("could not find flag", "loglevel", "all")
				return err
			}

			var level slog.Leveler
			switch logLevelFlag {
			case "error":
				level = slog.LevelError
			case "warn":
				level = slog.LevelWarn
			case "info":
				level = slog.LevelInfo
			case "debug":
				level = slog.LevelDebug
			default:
				level = slog.LevelInfo
			}

			logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: level}))
			slog.SetDefault(logger)

			appEnvFile := clapp.NewConfiguration(envFile, path, search)
			viperEnv := appEnvFile.GetViper()
			viperEnv.SetEnvPrefix("lens")
			viperEnv.AutomaticEnv()
			err = viperEnv.ReadInConfig()
			if err != nil {
				slog.Error("could not read configuration", "file", viperEnv.ConfigFileUsed(), "error", err)
				return err
			}

			appConfigFile := clapp.NewConfiguration(configFile, path, search)
			viperFile := appConfigFile.GetViper()

			err = viperFile.ReadInConfig()
			if err != nil {
				slog.Error("could not read configuration", "error", err)
				return err
			}

			var appConfig config.Application
			err = viperFile.Unmarshal(&appConfig)
			if err != nil {
				slog.Error("could not unmarshal configuration", "error", err)
				return err
			}

			err = appConfig.UpdateEnvironmentVariables(viperEnv)
			if err != nil {
				slog.Error("could not update environment variables in config", "error", err)
				return err
			}

			var c command.Request
			if name != "" {
				c = command.Request{
					Config:     appConfig,
					Request:    name,
					RequestAll: false,
				}
			}

			if all {
				c = command.Request{
					Config:     appConfig,
					Request:    name,
					RequestAll: all,
				}
			}
			err = c.Execute()
			return err
		},
		SilenceErrors: true,
		SilenceUsage:  false,
	},
}

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