Documentation ¶
Index ¶
- func CopyEscapable(dst io.Writer, src io.ReadCloser) (written int64, err error)
- func CopyFile(src, dst string) (int64, error)
- func CreatePidFile(pidfile string) error
- func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, isTerminal bool) error
- func DockerInitPath(localCopy string) string
- func DoesEnvExist(name string) bool
- func Download(url string) (resp *http.Response, err error)
- func GetCallerName(depth int) string
- func GetTotalUsedFds() int
- func HashData(src io.Reader) (string, error)
- func NewHTTPRequestError(msg string, res *http.Response) error
- func ParseFlags(cmd *flag.FlagSet, args []string, withHelp bool) error
- func ProgressReader(r io.ReadCloser, size int, output io.Writer, sf *StreamFormatter, newline bool, ...) *progressReader
- func ReadDockerIgnore(path string) ([]string, error)
- func ReadSymlinkedDirectory(path string) (string, error)
- func RemovePidFile(pidfile string)
- func ReplaceOrAppendEnvValues(defaults, overrides []string) []string
- func ReportError(cmd *flag.FlagSet, str string, withHelp bool)
- func SelfPath() string
- func ShellQuoteArguments(args []string) string
- func StringsContainsNoCase(slice []string, s string) bool
- func TempDir(rootDir string) (string, error)
- func TestDirectory(templateDir string) (dir string, err error)
- func Trunc(s string, maxlen int) string
- func ValidateContextDirectory(srcPath string, excludes []string) error
- func ValidateID(id string) error
- type HTTPAuthDecorator
- type HTTPMetaHeadersDecorator
- type HTTPRequestDecorator
- type HTTPRequestFactory
- type HTTPUserAgentDecorator
- type JSONError
- type JSONMessage
- type JSONProgress
- type KeyValuePair
- type StatusError
- type StderrFormater
- type StdoutFormater
- type StreamFormatter
- func (sf *StreamFormatter) FormatError(err error) []byte
- func (sf *StreamFormatter) FormatProgress(id, action string, progress *JSONProgress) []byte
- func (sf *StreamFormatter) FormatStatus(id, format string, a ...interface{}) []byte
- func (sf *StreamFormatter) FormatStream(str string) []byte
- func (sf *StreamFormatter) Json() bool
- type VersionInfo
- type WriteCounter
- type WriteFlusher
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyEscapable ¶
Code c/c from io.Copy() modified to handle escape sequence
func CreatePidFile ¶
func DockerInitPath ¶
Figure out the path of our dockerinit (which may be SelfPath())
func DoesEnvExist ¶
func GetCallerName ¶
GetCallerName introspects the call stack and returns the name of the function `depth` levels down in the stack.
func GetTotalUsedFds ¶
func GetTotalUsedFds() int
func ParseFlags ¶
ParseFlags is a utility function that adds a help flag if withHelp is true, calls cmd.Parse(args) and prints a relevant error message if there are incorrect number of arguments. It returns error only if error handling is set to ContinueOnError and parsing fails. If error handling is set to ExitOnError, it's safe to ignore the return value. TODO: move this to a better package than utils
func ProgressReader ¶
func ProgressReader(r io.ReadCloser, size int, output io.Writer, sf *StreamFormatter, newline bool, ID, action string) *progressReader
func ReadDockerIgnore ¶
Reads a .dockerignore file and returns the list of file patterns to ignore. Note this will trim whitespace from each line as well as use GO's "clean" func to get the shortest/cleanest path for each.
func ReadSymlinkedDirectory ¶
ReadSymlinkedDirectory returns the target directory of a symlink. The target of the symbolic link may not be a file.
func RemovePidFile ¶
func RemovePidFile(pidfile string)
func ReplaceOrAppendEnvValues ¶
ReplaceOrAppendValues returns the defaults with the overrides either replaced by env key or appended to the list
func SelfPath ¶
func SelfPath() string
Figure out the absolute path of our own binary (if it's still around).
func ShellQuoteArguments ¶
Take a list of strings and escape them so they will be handled right when passed as arguments to an program via a shell
func StringsContainsNoCase ¶
func TestDirectory ¶
TestDirectory creates a new temporary directory and returns its path. The contents of directory at path `templateDir` is copied into the new directory.
func ValidateContextDirectory ¶
ValidateContextDirectory checks if all the contents of the directory can be read and returns an error if some files can't be read symlinks which point to non-existing files don't trigger an error
func ValidateID ¶
Types ¶
type HTTPAuthDecorator ¶
type HTTPAuthDecorator struct {
// contains filtered or unexported fields
}
func (*HTTPAuthDecorator) ChangeRequest ¶
type HTTPMetaHeadersDecorator ¶
func (*HTTPMetaHeadersDecorator) ChangeRequest ¶
type HTTPRequestDecorator ¶
type HTTPRequestDecorator interface { // ChangeRequest() changes the request accordingly. // The changed request will be returned or err will be non-nil // if an error occur. ChangeRequest(req *http.Request) (newReq *http.Request, err error) }
HTTPRequestDecorator is used to change an instance of http.Request. It could be used to add more header fields, change body, etc.
func NewHTTPAuthDecorator ¶
func NewHTTPAuthDecorator(login, password string) HTTPRequestDecorator
func NewHTTPUserAgentDecorator ¶
func NewHTTPUserAgentDecorator(versions ...VersionInfo) HTTPRequestDecorator
type HTTPRequestFactory ¶
type HTTPRequestFactory struct {
// contains filtered or unexported fields
}
HTTPRequestFactory creates an HTTP request and applies a list of decorators on the request.
func NewHTTPRequestFactory ¶
func NewHTTPRequestFactory(d ...HTTPRequestDecorator) *HTTPRequestFactory
func (*HTTPRequestFactory) AddDecorator ¶
func (self *HTTPRequestFactory) AddDecorator(d ...HTTPRequestDecorator)
func (*HTTPRequestFactory) GetDecorators ¶
func (self *HTTPRequestFactory) GetDecorators() []HTTPRequestDecorator
func (*HTTPRequestFactory) NewRequest ¶
func (h *HTTPRequestFactory) NewRequest(method, urlStr string, body io.Reader, d ...HTTPRequestDecorator) (*http.Request, error)
NewRequest() creates a new *http.Request, applies all decorators in the HTTPRequestFactory on the request, then applies decorators provided by d on the request.
type HTTPUserAgentDecorator ¶
type HTTPUserAgentDecorator struct {
// contains filtered or unexported fields
}
HTTPUserAgentDecorator appends the product/version to the user agent field of a request.
func (*HTTPUserAgentDecorator) ChangeRequest ¶
type JSONError ¶
type JSONMessage ¶
type JSONMessage struct { Stream string `json:"stream,omitempty"` Status string `json:"status,omitempty"` Progress *JSONProgress `json:"progressDetail,omitempty"` ProgressMessage string `json:"progress,omitempty"` //deprecated ID string `json:"id,omitempty"` From string `json:"from,omitempty"` Time int64 `json:"time,omitempty"` Error *JSONError `json:"errorDetail,omitempty"` ErrorMessage string `json:"error,omitempty"` //deprecated }
type JSONProgress ¶
type JSONProgress struct { Current int `json:"current,omitempty"` Total int `json:"total,omitempty"` Start int64 `json:"start,omitempty"` // contains filtered or unexported fields }
func (*JSONProgress) String ¶
func (p *JSONProgress) String() string
type KeyValuePair ¶
type StatusError ¶
An StatusError reports an unsuccessful exit by a command.
func (*StatusError) Error ¶
func (e *StatusError) Error() string
type StderrFormater ¶
type StderrFormater struct { io.Writer *StreamFormatter }
type StdoutFormater ¶
type StdoutFormater struct { io.Writer *StreamFormatter }
type StreamFormatter ¶
type StreamFormatter struct {
// contains filtered or unexported fields
}
func NewStreamFormatter ¶
func NewStreamFormatter(json bool) *StreamFormatter
func (*StreamFormatter) FormatError ¶
func (sf *StreamFormatter) FormatError(err error) []byte
func (*StreamFormatter) FormatProgress ¶
func (sf *StreamFormatter) FormatProgress(id, action string, progress *JSONProgress) []byte
func (*StreamFormatter) FormatStatus ¶
func (sf *StreamFormatter) FormatStatus(id, format string, a ...interface{}) []byte
func (*StreamFormatter) FormatStream ¶
func (sf *StreamFormatter) FormatStream(str string) []byte
func (*StreamFormatter) Json ¶
func (sf *StreamFormatter) Json() bool
type VersionInfo ¶
VersionInfo is used to model entities which has a version. It is basically a tupple with name and version.
type WriteCounter ¶
Wrap a concrete io.Writer and hold a count of the number of bytes written to the writer during a "session". This can be convenient when write return is masked (e.g., json.Encoder.Encode())
func NewWriteCounter ¶
func NewWriteCounter(w io.Writer) *WriteCounter
type WriteFlusher ¶
func NewWriteFlusher ¶
func NewWriteFlusher(w io.Writer) *WriteFlusher