35 lines
741 B
Go
35 lines
741 B
Go
|
package config
|
||
|
|
||
|
import (
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
type Unit struct {
|
||
|
Name string `yaml:"name"`
|
||
|
Mask bool `yaml:"mask"`
|
||
|
Enable bool `yaml:"enable"`
|
||
|
Runtime bool `yaml:"runtime"`
|
||
|
Content string `yaml:"content"`
|
||
|
Command string `yaml:"command"`
|
||
|
|
||
|
// For drop-in units, a cloudinit.conf is generated.
|
||
|
// This is currently unbound in YAML (and hence unsettable in cloud-config files)
|
||
|
// until the correct behaviour for multiple drop-in units is determined.
|
||
|
DropIn bool `yaml:"-"`
|
||
|
}
|
||
|
|
||
|
func (u *Unit) Type() string {
|
||
|
ext := filepath.Ext(u.Name)
|
||
|
return strings.TrimLeft(ext, ".")
|
||
|
}
|
||
|
|
||
|
func (u *Unit) Group() string {
|
||
|
switch u.Type() {
|
||
|
case "network", "netdev", "link":
|
||
|
return "network"
|
||
|
default:
|
||
|
return "system"
|
||
|
}
|
||
|
}
|