github.com/jfrog/jfrog-cli-core/v2@v2.51.0/plugins/common/config.go (about) 1 package common 2 3 import ( 4 "strings" 5 6 "github.com/jfrog/jfrog-cli-core/v2/common/build" 7 "github.com/jfrog/jfrog-cli-core/v2/common/cliutils" 8 "github.com/jfrog/jfrog-cli-core/v2/common/spec" 9 "github.com/jfrog/jfrog-cli-core/v2/plugins/components" 10 "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" 11 ) 12 13 // Returns build configuration struct using the args (build name/number) and options (project) provided by the user. 14 // Any empty configuration could be later overridden by environment variables if set. 15 func CreateBuildConfiguration(c *components.Context) *build.BuildConfiguration { 16 buildConfiguration := new(build.BuildConfiguration) 17 var buildNameArg, buildNumberArg string 18 if len(c.Arguments) > 1 && c.Arguments[0] != "" && c.Arguments[1] != "" { 19 buildNameArg, buildNumberArg = c.Arguments[0], c.Arguments[1] 20 } 21 buildConfiguration.SetBuildName(buildNameArg).SetBuildNumber(buildNumberArg).SetProject(c.GetStringFlagValue("project")).SetModule(c.GetStringFlagValue("module")) 22 return buildConfiguration 23 } 24 25 func FixWinPathsForFileSystemSourcedCmds(uploadSpec *spec.SpecFiles, c *components.Context) { 26 cliutils.FixWinPathsForFileSystemSourcedCmds(uploadSpec, c.IsFlagSet("spec"), c.IsFlagSet("exclusions")) 27 } 28 29 func GetFileSystemSpec(c *components.Context) (fsSpec *spec.SpecFiles, err error) { 30 fsSpec, err = spec.CreateSpecFromFile(c.GetStringFlagValue("spec"), coreutils.SpecVarsStringToMap(c.GetStringFlagValue("spec-vars"))) 31 if err != nil { 32 return 33 } 34 // Override spec with CLI options 35 for i := 0; i < len(fsSpec.Files); i++ { 36 fsSpec.Get(i).Target = strings.TrimPrefix(fsSpec.Get(i).Target, "/") 37 OverrideSpecFieldsIfSet(fsSpec.Get(i), c) 38 } 39 return 40 } 41 42 func OverrideSpecFieldsIfSet(spec *spec.File, c *components.Context) { 43 OverrideArrayIfSet(&spec.Exclusions, c, "exclusions") 44 OverrideArrayIfSet(&spec.SortBy, c, "sort-by") 45 OverrideIntIfSet(&spec.Offset, c, "offset") 46 OverrideIntIfSet(&spec.Limit, c, "limit") 47 OverrideStringIfSet(&spec.SortOrder, c, "sort-order") 48 OverrideStringIfSet(&spec.Props, c, "props") 49 OverrideStringIfSet(&spec.TargetProps, c, "target-props") 50 OverrideStringIfSet(&spec.ExcludeProps, c, "exclude-props") 51 OverrideStringIfSet(&spec.Build, c, "build") 52 OverrideStringIfSet(&spec.Project, c, "project") 53 OverrideStringIfSet(&spec.ExcludeArtifacts, c, "exclude-artifacts") 54 OverrideStringIfSet(&spec.IncludeDeps, c, "include-deps") 55 OverrideStringIfSet(&spec.Bundle, c, "bundle") 56 OverrideStringIfSet(&spec.Recursive, c, "recursive") 57 OverrideStringIfSet(&spec.Flat, c, "flat") 58 OverrideStringIfSet(&spec.Explode, c, "explode") 59 OverrideStringIfSet(&spec.BypassArchiveInspection, c, "bypass-archive-inspection") 60 OverrideStringIfSet(&spec.Regexp, c, "regexp") 61 OverrideStringIfSet(&spec.IncludeDirs, c, "include-dirs") 62 OverrideStringIfSet(&spec.ValidateSymlinks, c, "validate-symlinks") 63 OverrideStringIfSet(&spec.Symlinks, c, "symlinks") 64 OverrideStringIfSet(&spec.Transitive, c, "transitive") 65 OverrideStringIfSet(&spec.PublicGpgKey, c, "gpg-key") 66 }