archive

package
v0.7.2 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2013 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ChangeModify = iota
	ChangeAdd
	ChangeDelete
)

Variables

This section is empty.

Functions

func ApplyLayer added in v0.7.0

func ApplyLayer(dest string, layer Archive) error

ApplyLayer parses a diff in the standard layer format from `layer`, and applies it to the directory `dest`.

func ChangesSize added in v0.7.0

func ChangesSize(newDir string, changes []Change) int64

func CmdStream

func CmdStream(cmd *exec.Cmd, input *string, atEnd func()) (io.Reader, error)

CmdStream executes a command, and returns its stdout as a stream. If the command fails to run or doesn't complete successfully, an error will be returned, including anything written on stderr.

func CopyFileWithTar

func CopyFileWithTar(src, dst string) error

CopyFileWithTar emulates the behavior of the 'cp' command-line for a single file. It copies a regular file from path `src` to path `dst`, and preserves all its metadata.

If `dst` ends with a trailing slash '/', the final destination path will be `dst/base(src)`.

func CopyWithTar

func CopyWithTar(src, dst string) error

CopyWithTar creates a tar archive of filesystem path `src`, and unpacks it at filesystem path `dst`. The archive is streamed directly with fixed buffering and no intermediary disk IO.

func Tar

func Tar(path string, compression Compression) (io.Reader, error)

Tar creates an archive from the directory at `path`, and returns it as a stream of bytes.

func TarFilter

func TarFilter(path string, options *TarOptions) (io.Reader, error)

Tar creates an archive from the directory at `path`, only including files whose relative paths are included in `filter`. If `filter` is nil, then all files are included.

func TarUntar

func TarUntar(src string, filter []string, dst string) error

TarUntar is a convenience function which calls Tar and Untar, with the output of one piped into the other. If either Tar or Untar fails, TarUntar aborts and returns the error.

func Untar

func Untar(archive io.Reader, path string, options *TarOptions) error

Untar reads a stream of bytes from `archive`, parses it as a tar archive, and unpacks it into the directory at `path`. The archive may be compressed with one of the following algorithms:

identity (uncompressed), gzip, bzip2, xz.

FIXME: specify behavior when target path exists vs. doesn't exist.

func UntarPath

func UntarPath(src, dst string) error

UntarPath is a convenience function which looks for an archive at filesystem path `src`, and unpacks it at `dst`.

Types

type Archive

type Archive io.Reader

func ExportChanges added in v0.7.0

func ExportChanges(dir string, changes []Change) (Archive, error)

type Change added in v0.7.0

type Change struct {
	Path string
	Kind ChangeType
}

func Changes added in v0.7.0

func Changes(layers []string, rw string) ([]Change, error)

func ChangesDirs added in v0.7.0

func ChangesDirs(newDir, oldDir string) ([]Change, error)

Compare two directories and generate an array of Change objects describing the changes

func (*Change) String added in v0.7.0

func (change *Change) String() string

type ChangeType added in v0.7.0

type ChangeType int

type Compression

type Compression int
const (
	Uncompressed Compression = iota
	Bzip2
	Gzip
	Xz
)

func DetectCompression

func DetectCompression(source []byte) Compression

func (*Compression) Extension

func (compression *Compression) Extension() string

func (*Compression) Flag

func (compression *Compression) Flag() string

type FileInfo added in v0.7.0

type FileInfo struct {
	// contains filtered or unexported fields
}

func (*FileInfo) Changes added in v0.7.0

func (info *FileInfo) Changes(oldInfo *FileInfo) []Change

func (*FileInfo) LookUp added in v0.7.0

func (root *FileInfo) LookUp(path string) *FileInfo

type TarOptions added in v0.7.0

type TarOptions struct {
	Includes    []string
	Excludes    []string
	Recursive   bool
	Compression Compression
	CreateFiles []string
}

type TempArchive

type TempArchive struct {
	*os.File
	Size int64 // Pre-computed from Stat().Size() as a convenience
}

func NewTempArchive

func NewTempArchive(src Archive, dir string) (*TempArchive, error)

NewTempArchive reads the content of src into a temporary file, and returns the contents of that file as an archive. The archive can only be read once - as soon as reading completes, the file will be deleted.

func (*TempArchive) Read

func (archive *TempArchive) Read(data []byte) (int, error)

Jump to

Keyboard shortcuts

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