package hst import ( "encoding/gob" "hakurei.app/container/check" ) func init() { gob.Register(new(FSDaemon)) } // FilesystemDaemon is the type string of a daemon. const FilesystemDaemon = "daemon" // FSDaemon represents a daemon to be started in the container. type FSDaemon struct { // Pathname indicating readiness of daemon. Target *check.Absolute `json:"dst"` // Absolute pathname to daemon executable file. Exec *check.Absolute `json:"path"` // Arguments (excl. first) passed to daemon. Args []string `json:"args"` } func (d *FSDaemon) Valid() bool { return d != nil && d.Target != nil && d.Exec != nil } func (d *FSDaemon) Path() *check.Absolute { if !d.Valid() { return nil } return d.Target } func (d *FSDaemon) Host() []*check.Absolute { return nil } func (d *FSDaemon) Apply(z *ApplyState) { if !d.Valid() { return } z.Daemon(d.Target, d.Exec, d.Args...) } func (d *FSDaemon) String() string { if !d.Valid() { return "" } return "daemon:" + d.Target.String() }