luci: go.chromium.org/luci/common/isolated Index | Files

package isolated

import "go.chromium.org/luci/common/isolated"

Package isolated defines the isolated common code shared by the client and server.

Index

Package Files

algo.go doc.go isolated.go large.go utils.go

Constants

const IsolatedFormatVersion = "2.0"

IsolatedFormatVersion is version of *.isolated file format. Put into JSON.

func GetCompressor Uses

func GetCompressor(namespace string, out io.Writer) (io.WriteCloser, error)

GetCompressor returns a fresh instance of the compression algorithm.

It must be closed after use.

It is currently hardcoded to RFC 1950 (zlib).

func GetDecompressor Uses

func GetDecompressor(namespace string, in io.Reader) (io.ReadCloser, error)

GetDecompressor returns a fresh instance of the decompression algorithm.

It must be closed after use.

It is currently hardcoded to RFC 1950 (zlib).

func GetHash Uses

func GetHash(namespace string) crypto.Hash

GetHash returns a fresh instance of the hashing algorithm to be used to calculate the HexDigest.

A prefix of "sha256-" and "sha512-" respectively returns a sha-256 and sha-512 instance. Otherwise a sha-1 instance is returned.

func HashFile Uses

func HashFile(h crypto.Hash, path string) (isolateservice.HandlersEndpointsV1Digest, error)

HashFile hashes a file and returns a HandlersEndpointsV1Digest out of it.

func Pack Uses

func Pack(values []int64) ([]byte, error)

Pack returns a deflate'd buffer of delta encoded varints.

func Unpack Uses

func Unpack(data []byte) ([]int64, error)

Unpack decompresses a deflate'd delta encoded list of varints.

func WriteStats Uses

func WriteStats(path string, hot, cold []int64) error

WriteStats writes cache stats in packed format.

type File Uses

type File struct {
    Digest HexDigest `json:"h,omitempty"`
    Link   *string   `json:"l,omitempty"`
    Mode   *int      `json:"m,omitempty"`
    Size   *int64    `json:"s,omitempty"`
    Type   FileType  `json:"t,omitempty"`
}

File describes a single file referenced by content in a .isolated file.

For regular files, the Digest, Mode, and Size fields should be set, and the Type field should be set for non-basic files. For symbolic links, only the Link field should be set.

func BasicFile Uses

func BasicFile(d HexDigest, mode int, size int64) File

BasicFile returns a File populated for a basic file.

func SymLink(link string) File

SymLink returns a File populated for a symbolic link.

func TarFile Uses

func TarFile(d HexDigest, size int64) File

TarFile returns a file populated for a tar archive file.

type FileType Uses

type FileType string

FileType describes the type of file being isolated.

const (
    // Basic represents normal files. It is the default type.
    Basic FileType = "basic"

    // ArArchive represents an ar archive containing a large number of small files.
    ArArchive FileType = "ar"

    // TarArchive represents a tar archive containing a large number of small files.
    TarArchive FileType = "tar"
)

type HexDigest Uses

type HexDigest string

HexDigest is the hash of a file that is hex-encoded. Only lower case letters are accepted.

func Hash Uses

func Hash(h crypto.Hash, src io.Reader) (HexDigest, error)

Hash hashes a reader and returns a HexDigest from it.

func HashBytes Uses

func HashBytes(h crypto.Hash, content []byte) HexDigest

HashBytes hashes content and returns a HexDigest from it.

func Sum Uses

func Sum(h hash.Hash) HexDigest

Sum is a shortcut to get a HexDigest from a hash.Hash.

func (HexDigest) Validate Uses

func (d HexDigest) Validate(h crypto.Hash) bool

Validate returns true if the hash is valid.

type HexDigests Uses

type HexDigests []HexDigest

HexDigests is a slice of HexDigest that implements sort.Interface.

func (HexDigests) Len Uses

func (h HexDigests) Len() int

func (HexDigests) Less Uses

func (h HexDigests) Less(i, j int) bool

func (HexDigests) Swap Uses

func (h HexDigests) Swap(i, j int)

type Isolated Uses

type Isolated struct {
    Algo        string          `json:"algo"` // Must be "sha-1"
    Command     []string        `json:"command,omitempty"`
    Files       map[string]File `json:"files,omitempty"`
    Includes    HexDigests      `json:"includes,omitempty"`
    RelativeCwd string          `json:"relative_cwd,omitempty"`
    Version     string          `json:"version"`
}

Isolated is the data from a JSON serialized .isolated file.

func New Uses

func New(h crypto.Hash) *Isolated

New returns a new Isolated with the default Algo and Version.

Package isolated imports 14 packages (graph) and is imported by 43 packages. Updated 2020-10-24. Refresh now. Tools for package owners.