Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ABFSConfig ¶
type EvalOptions ¶
type Evaluator ¶
type Evaluator struct {
SetupInput
// contains filtered or unexported fields
}
func NewEvaluator ¶
func NewEvaluator(store entities.CASStore, cacheman *client.Client, in SetupInput) (*Evaluator, error)
NewEvaluator creates a temporary directory, mounts casfs at /mnt inside that directory, applies a hard-coded NSJail patch to the mount to prepare NSJail for use, and copies tap into the mount for ABFS-copying later on.
func (*Evaluator) ActiveJobs ¶
func (*Evaluator) Eval ¶
func (e *Evaluator) Eval(ctx context.Context, h entities.Hash, patchHashes []entities.Hash, opt EvalOptions) (_ *binding.EvalResponse, _ *ActiveJob, returnErr error)
Eval calls the mount's Chroot function to establish a temporary directory for execution. This is used as the NSJail chroot so the linux OS directories /lib, /bin, /usr are placed there via NSJail read-only binds. The Android tree is rooted at /src inside the chroot. Tap is placed at /tap inside. The whole directory is removed afterwards.
type JobDurations ¶
type SetupInput ¶
type SetupInput struct {
ABFSConfig
// path of tap binary outside of ABFS
TapPath string
// Keep filesystem artifacts alive after closing.
Keep bool
}
Click to show internal directories.
Click to hide internal directories.