Documentation ¶
Index ¶
- Constants
- Variables
- func AbsFile(workspace string, filename string) (string, error)
- func AbsolutePaths(workspace string, paths []string) []string
- func BoolPtr(b bool) *bool
- func CloneThroughJSON(old interface{}, new interface{})
- func CloneThroughYAML(old interface{}, new interface{})
- func CreateMappedTar(w io.Writer, root string, pathMap map[string][]string) error
- func CreateTar(w io.Writer, root string, paths []string) error
- func CreateTarGz(w io.Writer, root string, paths []string) error
- func CreateTarWithParents(w io.Writer, root string, paths []string, uid, gid int, modTime time.Time) error
- func DetectWSL() (bool, error)
- func Download(url string) ([]byte, error)
- func EnvMapToSlice(m map[string]string, separator string) []string
- func EnvPtrMapToSlice(m map[string]*string, separator string) []string
- func EnvSliceToMap(slice []string, separator string) map[string]string
- func EvaluateEnvTemplateMap(args map[string]*string) (map[string]*string, error)
- func ExecuteEnvTemplate(envTemplate *template.Template, customMap map[string]string) (string, error)
- func Expand(text, key, value string) string
- func ExpandEnvTemplate(s string, envMap map[string]string) (string, error)
- func ExpandPathsGlob(workingDir string, paths []string) ([]string, error)
- func GetAvailablePort(address string, port int, usedPorts *PortSet) int
- func IsDir(path string) bool
- func IsFile(path string) bool
- func IsHiddenDir(filename string) bool
- func IsHiddenFile(filename string) bool
- func IsPortFree(address string, p int) bool
- func IsSubPath(basepath string, targetpath string) bool
- func IsTerminal(w io.Writer) (uintptr, bool)
- func IsURL(s string) bool
- func MapToFlag(m map[string]*string, flag string) ([]string, error)
- func NonEmptyLines(input []byte) []string
- func ParseEnvTemplate(t string) (*template.Template, error)
- func RandomID() string
- func ReadConfiguration(filename string) ([]byte, error)
- func RegexEqual(expected, actual string) bool
- func RemoveFromSlice(s []string, target string) []string
- func RunCmd(cmd *exec.Cmd) error
- func RunCmdOut(cmd *exec.Cmd) ([]byte, error)
- func StrSliceContains(sl []string, s string) bool
- func StrSliceIndex(sl []string, s string) int
- func StrSliceInsert(sl []string, index int, insert []string) []string
- func StringPtr(s string) *string
- func VerifyOrCreateFile(path string) error
- type Command
- type CommandWrapper
- type Commander
- type Gsutil
- type PortSet
- type SyncStore
Constants ¶
const GsutilExec = "gsutil"
const Loopback = "127.0.0.1"
Loopback network address. Skaffold should not bind to 0.0.0.0 unless we really want to expose something to the network.
Variables ¶
var (
OSEnviron = os.Environ
)
For testing
var SkipWrapperCheck = false
Functions ¶
func AbsFile ¶ added in v0.16.0
AbsFile resolves the absolute path of the file named filename in directory workspace, erroring if it is not a file
func AbsolutePaths ¶ added in v0.24.0
AbsolutePaths prepends each path in paths with workspace if the path isn't absolute
func CloneThroughJSON ¶ added in v0.23.0
func CloneThroughJSON(old interface{}, new interface{})
CloneThroughJSON clones an `old` object into a `new` one using json marshalling and unmarshalling. Since the object can be marshalled, it's almost sure it can be unmarshalled. So we prefer to panic instead of returning an error that would create an untestable branch on the call site.
func CloneThroughYAML ¶ added in v0.31.0
func CloneThroughYAML(old interface{}, new interface{})
CloneThroughYAML clones an `old` object into a `new` one using yaml marshalling and unmarshalling. Since the object can be marshalled, it's almost sure it can be unmarshalled. So we prefer to panic instead of returning an error that would create an untestable branch on the call site.
func CreateMappedTar ¶ added in v0.23.0
func CreateTarWithParents ¶ added in v1.1.0
func EnvMapToSlice ¶ added in v1.7.1
EnvMapToSlice converts map of (string,string) to string slice
func EnvPtrMapToSlice ¶ added in v1.7.1
EnvPtrMapToSlice converts map of (string,*string) to string slice
func EnvSliceToMap ¶ added in v1.7.1
EnvSliceToMap converts a string slice into a map of (string,string) using the given separator
func EvaluateEnvTemplateMap ¶ added in v1.7.1
EvaluateEnvTemplateMap parses and executes all map values as templates based on OS environment variables
func ExecuteEnvTemplate ¶ added in v0.7.0
func ExecuteEnvTemplate(envTemplate *template.Template, customMap map[string]string) (string, error)
ExecuteEnvTemplate executes an envTemplate based on OS environment variables and a custom map
func Expand ¶ added in v0.15.0
Expand replaces placeholders for a given key with a given value. It supports the ${key} and the $key syntax.
func ExpandEnvTemplate ¶ added in v1.5.0
ExpandEnvTemplate parses and executes template s with an optional environment map
func ExpandPathsGlob ¶
ExpandPathsGlob expands paths according to filepath.Glob patterns Returns a list of unique files that match the glob patterns passed in.
func GetAvailablePort ¶ added in v0.25.0
See https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt,
func IsHiddenDir ¶ added in v0.25.0
IsHiddenDir returns if a directory is hidden.
func IsHiddenFile ¶ added in v0.25.0
IsHiddenFile returns if a file is hidden. File is hidden if it starts with prefix "."
func IsPortFree ¶ added in v0.35.0
func IsSubPath ¶ added in v1.7.1
IsSubPath return true if targetpath is sub-path of basepath; doesn't check for symlinks
func MapToFlag ¶ added in v1.7.1
MapToFlag parses all map values and returns them as `key=value` with the given flag Example: --my-flag key0=value0 --my-flag key1=value1 --my-flag key2=value2
func NonEmptyLines ¶ added in v0.17.0
NonEmptyLines scans the provided input and returns the non-empty strings found as an array
func ParseEnvTemplate ¶ added in v0.7.0
ParseEnvTemplate is a simple wrapper to parse an env template
func ReadConfiguration ¶ added in v0.4.0
ReadConfiguration reads a `skaffold.yaml` configuration and returns its content.
func RegexEqual ¶ added in v1.7.1
RegexEqual matches the string 'actual' against a regex compiled from 'expected' If 'expected' is not a valid regex, string comparison is used as fallback
func RemoveFromSlice ¶ added in v0.14.0
RemoveFromSlice removes a string from a slice of strings
func StrSliceContains ¶
func StrSliceIndex ¶ added in v0.30.0
func StrSliceInsert ¶ added in v0.32.0
func VerifyOrCreateFile ¶ added in v0.13.0
VerifyOrCreateFile checks if a file exists at the given path, and if not, creates all parent directories and creates the file.
Types ¶
type Command ¶
Command is an interface used to run commands. All packages should use this interface instead of calling exec.Cmd directly.
type CommandWrapper ¶ added in v0.16.0
type CommandWrapper struct { // Executable is the base name of the command, like `gradle` Executable string // Wrapper is the optional base name of a command wrapper, like `gradlew` Wrapper string }
CommandWrapper defines an association between an executable command (like `gradle`) and possible command wrappers (like `gradlew`). `CreateCommand` uses this definition to create a `Cmd` object. Maven and Gradle projects often provide a wrapper script to ensure a particular version of their builder is used.
func (CommandWrapper) CreateCommand ¶ added in v0.16.0
func (cw CommandWrapper) CreateCommand(ctx context.Context, workingDir string, args []string) exec.Cmd
CreateCommand creates an `exec.Cmd` that is configured to call the executable (possibly using a wrapper in `workingDir`, when found) with the given arguments, with working directory set to `workingDir`.
type Commander ¶
type Commander struct{}
Commander is the exec.Cmd implementation of the Command interface
type SyncStore ¶ added in v1.7.1
type SyncStore struct {
// contains filtered or unexported fields
}
SyncStore exports a single method `Exec` to ensure single execution of a function and share the result between all callers of the function.
func NewSyncStore ¶ added in v1.7.1
func NewSyncStore() *SyncStore
NewSyncStore returns a new instance of `SyncStore`
func (*SyncStore) Exec ¶ added in v1.7.1
func (o *SyncStore) Exec(key interface{}, f func() interface{}) interface{}
Exec executes the function f if and only if it's being called the first time for a specific key. If it's called multiple times for the same key only the first call will execute and store the result of f. All other calls will be blocked until the running instance of f returns and all of them receive the same result.