coreutils

package
v2.4.1 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2021 License: Apache-2.0 Imports: 20 Imported by: 35

Documentation

Index

Constants

View Source
const (

	// General core constants
	OnErrorPanic OnError = "panic"

	// Common
	TokenRefreshDisabled        = 0
	TokenRefreshDefaultInterval = 60

	// Home Dir
	JfrogCertsDirName        = "certs"
	JfrogConfigFile          = "jfrog-cli.conf"
	JfrogDependenciesDirName = "dependencies"
	JfrogSecurityDirName     = "security"
	JfrogSecurityConfFile    = "security.yaml"
	JfrogBackupDirName       = "backup"
	JfrogLogsDirName         = "logs"
	JfrogLocksDirName        = "locks"
	JfrogPluginsDirName      = "plugins"

	// Env
	ErrorHandling      = "JFROG_CLI_ERROR_HANDLING"
	TempDir            = "JFROG_CLI_TEMP_DIR"
	LogLevel           = "JFROG_CLI_LOG_LEVEL"
	ReportUsage        = "JFROG_CLI_REPORT_USAGE"
	HomeDir            = "JFROG_CLI_HOME_DIR"
	DependenciesDir    = "JFROG_CLI_DEPENDENCIES_DIR"
	BuildName          = "JFROG_CLI_BUILD_NAME"
	BuildNumber        = "JFROG_CLI_BUILD_NUMBER"
	Project            = "JFROG_CLI_BUILD_PROJECT"
	TransitiveDownload = "JFROG_CLI_TRANSITIVE_DOWNLOAD_EXPERIMENTAL"
	CI                 = "CI"
)

Variables

View Source
var ExitCodeError = ExitCode{1}
View Source
var ExitCodeFailNoOp = ExitCode{2}
View Source
var ExitCodeNoError = ExitCode{0}
View Source
var ExitCodeVulnerableBuild = ExitCode{3}

Functions

func AskYesNo

func AskYesNo(promptPrefix string, defaultValue bool) bool

Ask a yes or no question, with a default answer.

func ConvertExitCodeError added in v2.1.0

func ConvertExitCodeError(err error) error

When running a command in an external process, if the command fails to run or doesn't complete successfully ExitError is returned. We would like to return a regular error instead of ExitError, because some frameworks (such as codegangsta used by JFrog CLI) automatically exit when this error is returned.

func CreateDirInJfrogHome

func CreateDirInJfrogHome(dirName string) (string, error)

func ExitOnErr

func ExitOnErr(err error)

func ExtractDetailedSummaryFromArgs

func ExtractDetailedSummaryFromArgs(args []string) (cleanArgs []string, detailedSummary bool, err error)

func ExtractInsecureTlsFromArgs

func ExtractInsecureTlsFromArgs(args []string) (cleanArgs []string, insecureTls bool, err error)

func ExtractXrayOutputFormatFromArgs added in v2.4.1

func ExtractXrayOutputFormatFromArgs(args []string) (cleanArgs []string, format string, err error)

func ExtractXrayScanFromArgs

func ExtractXrayScanFromArgs(args []string) (cleanArgs []string, xrayScan bool, err error)

func FindBooleanFlag

func FindBooleanFlag(flagName string, args []string) (flagIndex int, flagValue bool, err error)

Boolean flag can be provided in one of the following forms: 1. --flag=value, where value can be true/false 2. --flag, here the value is true Return values: flagIndex - index of flagName in args. flagValue - value of flagName. err - error if flag exists, but we failed to extract its value. If flag does not exist flagIndex = -1 with false value and nil error.

func FindFlag

func FindFlag(flagName string, args []string) (flagIndex, flagValueIndex int, flagValue string, err error)

Find value of required CLI flag in Command. If flag does not exist, the returned index is -1 and nil is returned as the error. Return values: err - error if flag exists but failed to extract its value. flagIndex - index of flagName in Command. flagValueIndex - index in Command in which the value of the flag exists. flagValue - value of flagName.

func FindFlagFirstMatch

func FindFlagFirstMatch(flags, args []string) (flagIndex, flagValueIndex int, flagValue string, err error)

Find the first match of any of the provided flags in args. Return same values as FindFlag.

func GetCliPersistentTempDirPath

func GetCliPersistentTempDirPath() string

Return the path of CLI temp dir. This path should be persistent, meaning - should not be cleared at the end of a CLI run.

func GetCliUserAgent

func GetCliUserAgent() string

func GetCliUserAgentName

func GetCliUserAgentName() string

func GetCliUserAgentVersion

func GetCliUserAgentVersion() string

func GetClientAgentName

func GetClientAgentName() string

func GetClientAgentVersion

func GetClientAgentVersion() string

func GetConfigVersion

func GetConfigVersion() int

func GetJfrogBackupDir

func GetJfrogBackupDir() (string, error)

func GetJfrogCertsDir

func GetJfrogCertsDir() (string, error)

func GetJfrogConfigLockDir added in v2.2.0

func GetJfrogConfigLockDir() (string, error)

func GetJfrogHomeDir

func GetJfrogHomeDir() (string, error)

func GetJfrogLocksDir added in v2.2.0

func GetJfrogLocksDir() (string, error)

func GetJfrogPluginsDir

func GetJfrogPluginsDir() (string, error)

func GetJfrogSecurityConfFilePath

func GetJfrogSecurityConfFilePath() (string, error)

func GetJfrogSecurityDir

func GetJfrogSecurityDir() (string, error)

func GetWorkingDirectory

func GetWorkingDirectory() (string, error)

func IsAnyEmpty

func IsAnyEmpty(strings ...string) bool

func IsLinux

func IsLinux() bool

func IsTerminal added in v2.1.0

func IsTerminal() bool

IsTerminal checks whether stdout is a terminal.

func IsWindows

func IsWindows() bool

func PanicOnError

func PanicOnError(err error) error

func ParseArgs

func ParseArgs(args []string) ([]string, error)

Iterate over each argument, if env variable is found (e.g $HOME) replace it with env value.

func PrintMessage added in v2.1.0

func PrintMessage(message string)

PrintMessage prints message in a frame (which is actaully a table with a single table). For example: ┌─────────────────────────────────────────┐ │ An example of a message in a nice frame │ └─────────────────────────────────────────┘

func PrintTable added in v2.1.0

func PrintTable(rows interface{}, title string, emptyTableMessage string) error

PrintTable prints a slice of rows in a table. The parameter rows MUST be a slice, otherwise the method panics. How to use this method (with an example): The fields of the struct must have one of the tags: 'col-name' or 'embed-table' in order to be printed. Fields without any of these tags will be skipped. The tag 'col-name' can be set on string fields only. The column name is the 'col-name' tag value. If the cell content exceeds the defined col-max-width, the content will be broken into two (or more) lines. If you would like to limit the width of the column, you can use the 'col-max-width' tag. In case the struct you want to print contains a field that is a slice of other structs, you can print it in the table too with the 'embed-table' tag which can be set on slices of structs only.

Example: These are the structs Customer and Product:

type Customer struct {
    name     string    `col-name:"Name"`
    age      string    `col-name:"Age"`
    products []Product `embed-table:"true"`
}
type Product struct {
    title string `col-name:"Product Title" col-max-width:"15"`
    CatNumber string `col-name:"Product\nCatalog #"`
}

We'll use it, and run these commands:

customersSlice := []Customer{
    {name: "Gai", age: "350", products: []Product{{title: "SpiderFrog Shirt - Medium", CatNumber: "123456"}, {title: "Floral Bottle", CatNumber: "147585"}}},
    {name: "Noah", age: "21", products: []Product{{title: "Pouch", CatNumber: "456789"}, {title: "Ching Ching", CatNumber: "963852"}}},
}

err := coreutils.PrintTable(customersSlice, "Customers", "No customers were found")

That's the table printed:

Customers ┌──────┬─────┬─────────────────┬───────────┐ │ NAME │ AGE │ PRODUCT TITLE │ PRODUCT │ │ │ │ │ CATALOG # │ ├──────┼─────┼─────────────────┼───────────┤ │ Gai │ 350 │ SpiderFrog Shir │ 123456 │ │ │ │ t - Medium │ │ │ │ │ Floral Bottle │ 147585 │ ├──────┼─────┼─────────────────┼───────────┤ │ Noah │ 21 │ Pouch │ 456789 │ │ │ │ Ching Ching │ 963852 │ └──────┴─────┴─────────────────┴───────────┘

If customersSlice was empty, emptyTableMessage would have been printed instead:

Customers ┌─────────────────────────┐ │ No customers were found │ └─────────────────────────┘

func RemoveFlagFromCommand

func RemoveFlagFromCommand(args *[]string, flagIndex, flagValueIndex int)

Removes the provided flag and value from the command arguments

func ReplaceVars

func ReplaceVars(content []byte, specVars map[string]string) []byte

func SetCliUserAgentName

func SetCliUserAgentName(cliUserAgentNameToSet string)

func SetCliUserAgentVersion

func SetCliUserAgentVersion(versionToSet string)

func SetClientAgentName

func SetClientAgentName(clientAgentToSet string)

func SetClientAgentVersion

func SetClientAgentVersion(versionToSet string)

func SetIfEmpty

func SetIfEmpty(str *string, defaultStr string) bool

func SpecVarsStringToMap

func SpecVarsStringToMap(rawVars string) map[string]string

func StringsSliceContains

func StringsSliceContains(slice []string, str string) bool

func SumTrueValues

func SumTrueValues(boolArr []bool) int

Types

type CliError

type CliError struct {
	ExitCode
	ErrorMsg string
}

func (CliError) Error

func (err CliError) Error() string

type Credentials

type Credentials interface {
	SetUser(string)
	SetPassword(string)
	GetUser() string
	GetPassword() string
}

type ExitCode

type ExitCode struct {
	Code int
}

Exit codes:

func GetExitCode

func GetExitCode(err error, success, failed int, failNoOp bool) ExitCode

type GeneralExecCmd

type GeneralExecCmd struct {
	ExecPath string
	Command  []string
}

Command used to execute general commands.

func (*GeneralExecCmd) GetCmd

func (pluginCmd *GeneralExecCmd) GetCmd() *exec.Cmd

func (*GeneralExecCmd) GetEnv

func (pluginCmd *GeneralExecCmd) GetEnv() map[string]string

func (*GeneralExecCmd) GetErrWriter

func (pluginCmd *GeneralExecCmd) GetErrWriter() io.WriteCloser

func (*GeneralExecCmd) GetStdWriter

func (pluginCmd *GeneralExecCmd) GetStdWriter() io.WriteCloser

type OnError

type OnError string

Error modes (how should the application behave when the CheckError function is invoked):

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL