app_config.go 964 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package flags
  2. import (
  3. "fmt"
  4. "github.com/spf13/cobra"
  5. )
  6. const (
  7. // App_Name is the key for the app name flag
  8. App_Name = "name"
  9. // App_ConfigAttachEnvGroups is the key for the attach env groups flag
  10. App_ConfigAttachEnvGroups = "attach-env-groups"
  11. )
  12. type appConfigValues struct {
  13. AttachEnvGroups []string
  14. }
  15. // UseAppConfigFlags adds config flags to the given command
  16. func UseAppConfigFlags(cmd *cobra.Command) {
  17. cmd.PersistentFlags().StringSlice(
  18. App_ConfigAttachEnvGroups,
  19. nil,
  20. "attach environment groups to the app",
  21. )
  22. }
  23. // AppConfigValuesFromCmd retrieves config values from command flags
  24. func AppConfigValuesFromCmd(cmd *cobra.Command) (appConfigValues, error) {
  25. var values appConfigValues
  26. envGroups, err := cmd.Flags().GetStringSlice(App_ConfigAttachEnvGroups)
  27. if err != nil {
  28. return values, fmt.Errorf("error getting attach env groups: %w", err)
  29. }
  30. values = appConfigValues{
  31. AttachEnvGroups: envGroups,
  32. }
  33. return values, nil
  34. }