github.com/jfrog/jfrog-cli-core/v2@v2.52.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  }