Documentation ¶
Overview ¶
Package isolated defines the isolated common code shared by the client and server.
Index ¶
- Constants
- func GetCompressor(out io.Writer) (io.WriteCloser, error)
- func GetDecompressor(in io.Reader) (io.ReadCloser, error)
- func GetHash() hash.Hash
- func HashFile(path string) (isolateservice.HandlersEndpointsV1Digest, error)
- type File
- type FileType
- type HexDigest
- type HexDigests
- type Isolated
- type ReadOnlyValue
Constants ¶
const Algorithm = "sha-1"
Algorithm is the value for Algo.
const IsolatedFormatVersion = "1.4"
IsolatedFormatVersion is version of *.isolated file format. Put into JSON.
Variables ¶
This section is empty.
Functions ¶
func GetCompressor ¶
func GetCompressor(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 ¶
func GetDecompressor(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).
Types ¶
type File ¶
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.
type FileType ¶
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 ¶
type HexDigest string
HexDigest is the hash of a file that is hex-encoded. Only lower case letters are accepted.
type HexDigests ¶
type HexDigests []HexDigest
HexDigests is a slice of HexDigest that implements sort.Interface.
func (HexDigests) Len ¶
func (h HexDigests) Len() int
func (HexDigests) Less ¶
func (h HexDigests) Less(i, j int) bool
func (HexDigests) Swap ¶
func (h HexDigests) Swap(i, j int)
type Isolated ¶
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"` ReadOnly *ReadOnlyValue `json:"read_only,omitempty"` RelativeCwd string `json:"relative_cwd,omitempty"` Version string `json:"version"` }
Isolated is the data from a JSON serialized .isolated file.
type ReadOnlyValue ¶
type ReadOnlyValue int
ReadOnlyValue defines permissions on isolated files.
const ( // Writeable means that both files and directories are writeable. This should // not be used. Writeable ReadOnlyValue = 0 // FilesReadOnly means that files are read only but directories are // writeable. This permits the process executed to create temporary files in // the current directory. This is the recommended value and this is the // default value. FilesReadOnly ReadOnlyValue = 1 // DirsReadOnly means that both files and directories are read-only. This // enforces strict no-junk policy that the process cannot create files in the // temporary mapped directory. DirsReadOnly ReadOnlyValue = 2 )