all.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package commands
  2. import (
  3. "github.com/porter-dev/porter/cli/cmd/config"
  4. "github.com/spf13/cobra"
  5. )
  6. // parseRootConfigFlags grabs the runtime value of registered root level persisted flags.
  7. func parseRootConfigFlags(cmd *cobra.Command) config.CLIConfig {
  8. type flag struct {
  9. // stringName is the name of the flag which is a string
  10. stringName string
  11. // stringConfigTarget is the pointer to the string in the config struct
  12. stringConfigTarget *string
  13. // uintName is the name of the flag which is a uint
  14. uintName string
  15. // uintConfigTarget is the pointer to the uint in the config struct
  16. uintConfigTarget *uint
  17. }
  18. var profile string
  19. var config config.CLIConfig
  20. flagsToOverride := []flag{
  21. {
  22. stringName: "driver",
  23. stringConfigTarget: &config.Driver,
  24. },
  25. {
  26. stringName: "host",
  27. stringConfigTarget: &config.Host,
  28. },
  29. {
  30. stringName: "token",
  31. stringConfigTarget: &config.Token,
  32. },
  33. {
  34. stringName: "kubeconfig",
  35. stringConfigTarget: &config.Kubeconfig,
  36. },
  37. {
  38. stringName: "profile",
  39. stringConfigTarget: &profile,
  40. },
  41. {
  42. uintName: "project",
  43. uintConfigTarget: &config.Project,
  44. },
  45. {
  46. uintName: "cluster",
  47. uintConfigTarget: &config.Cluster,
  48. },
  49. {
  50. uintName: "registry",
  51. uintConfigTarget: &config.Registry,
  52. },
  53. {
  54. uintName: "helm_repo",
  55. uintConfigTarget: &config.HelmRepo,
  56. },
  57. }
  58. for _, fl := range flagsToOverride {
  59. if fl.stringName != "" {
  60. st, _ := cmd.Flags().GetString(fl.stringName)
  61. if st != "" {
  62. *fl.stringConfigTarget = st
  63. }
  64. }
  65. if fl.uintName != "" {
  66. ui, _ := cmd.Flags().GetUint(fl.uintName)
  67. if ui != 0 {
  68. *fl.uintConfigTarget = ui
  69. }
  70. }
  71. }
  72. return config
  73. }