system: move enablements from state package
This removes the unnecessary import of the state package. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
This commit is contained in:
parent
084cd84f36
commit
c21168a741
16
config.go
16
config.go
@ -9,7 +9,7 @@ import (
|
|||||||
"git.ophivana.moe/cat/fortify/dbus"
|
"git.ophivana.moe/cat/fortify/dbus"
|
||||||
"git.ophivana.moe/cat/fortify/internal"
|
"git.ophivana.moe/cat/fortify/internal"
|
||||||
"git.ophivana.moe/cat/fortify/internal/app"
|
"git.ophivana.moe/cat/fortify/internal/app"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -24,7 +24,7 @@ var (
|
|||||||
dbusVerbose bool
|
dbusVerbose bool
|
||||||
|
|
||||||
userName string
|
userName string
|
||||||
enablements [state.EnableLength]bool
|
enablements [system.ELen]bool
|
||||||
|
|
||||||
launchMethodText string
|
launchMethodText string
|
||||||
)
|
)
|
||||||
@ -42,10 +42,10 @@ func init() {
|
|||||||
flag.BoolVar(&dbusVerbose, "dbus-log", false, "Force logging in the D-Bus proxy")
|
flag.BoolVar(&dbusVerbose, "dbus-log", false, "Force logging in the D-Bus proxy")
|
||||||
|
|
||||||
flag.StringVar(&userName, "u", "chronos", "Passwd name of user to run as")
|
flag.StringVar(&userName, "u", "chronos", "Passwd name of user to run as")
|
||||||
flag.BoolVar(&enablements[state.EnableWayland], "wayland", false, "Share Wayland socket")
|
flag.BoolVar(&enablements[system.EWayland], "wayland", false, "Share Wayland socket")
|
||||||
flag.BoolVar(&enablements[state.EnableX], "X", false, "Share X11 socket and allow connection")
|
flag.BoolVar(&enablements[system.EX11], "X", false, "Share X11 socket and allow connection")
|
||||||
flag.BoolVar(&enablements[state.EnableDBus], "dbus", false, "Proxy D-Bus connection")
|
flag.BoolVar(&enablements[system.EDBus], "dbus", false, "Proxy D-Bus connection")
|
||||||
flag.BoolVar(&enablements[state.EnablePulse], "pulse", false, "Share PulseAudio socket and cookie")
|
flag.BoolVar(&enablements[system.EPulse], "pulse", false, "Share PulseAudio socket and cookie")
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -98,14 +98,14 @@ func configFromFlags() (config *app.Config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enablements from flags
|
// enablements from flags
|
||||||
for i := state.Enablement(0); i < state.EnableLength; i++ {
|
for i := system.Enablement(0); i < system.Enablement(system.ELen); i++ {
|
||||||
if enablements[i] {
|
if enablements[i] {
|
||||||
config.Confinement.Enablements.Set(i)
|
config.Confinement.Enablements.Set(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse D-Bus config file from flags if applicable
|
// parse D-Bus config file from flags if applicable
|
||||||
if enablements[state.EnableDBus] {
|
if enablements[system.EDBus] {
|
||||||
if dbusConfigSession == "builtin" {
|
if dbusConfigSession == "builtin" {
|
||||||
config.Confinement.SessionBus = dbus.NewConfig(dbusID, true, mpris)
|
config.Confinement.SessionBus = dbus.NewConfig(dbusID, true, mpris)
|
||||||
} else {
|
} else {
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/dbus"
|
"git.ophivana.moe/cat/fortify/dbus"
|
||||||
"git.ophivana.moe/cat/fortify/helper/bwrap"
|
"git.ophivana.moe/cat/fortify/helper/bwrap"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -41,7 +41,7 @@ type ConfinementConfig struct {
|
|||||||
SessionBus *dbus.Config `json:"session_bus,omitempty"`
|
SessionBus *dbus.Config `json:"session_bus,omitempty"`
|
||||||
|
|
||||||
// child capability enablements
|
// child capability enablements
|
||||||
Enablements state.Enablements `json:"enablements"`
|
Enablements system.Enablements `json:"enablements"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SandboxConfig describes resources made available to the sandbox.
|
// SandboxConfig describes resources made available to the sandbox.
|
||||||
@ -171,7 +171,7 @@ func Template() *Config {
|
|||||||
Log: false,
|
Log: false,
|
||||||
Filter: true,
|
Filter: true,
|
||||||
},
|
},
|
||||||
Enablements: state.EnableWayland.Mask() | state.EnableDBus.Mask() | state.EnablePulse.Mask(),
|
Enablements: system.EWayland.Mask() | system.EDBus.Mask() | system.EPulse.Mask(),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,7 +167,7 @@ func (a *app) Seal(config *Config) error {
|
|||||||
conf.Override = append(conf.Override, nscd)
|
conf.Override = append(conf.Override, nscd)
|
||||||
}
|
}
|
||||||
// bind GPU stuff
|
// bind GPU stuff
|
||||||
if config.Confinement.Enablements.Has(state.EnableX) || config.Confinement.Enablements.Has(state.EnableWayland) {
|
if config.Confinement.Enablements.Has(system.EX11) || config.Confinement.Enablements.Has(system.EWayland) {
|
||||||
conf.Filesystem = append(conf.Filesystem, &FilesystemConfig{Src: "/dev/dri", Device: true})
|
conf.Filesystem = append(conf.Filesystem, &FilesystemConfig{Src: "/dev/dri", Device: true})
|
||||||
}
|
}
|
||||||
config.Confinement.Sandbox = conf
|
config.Confinement.Sandbox = conf
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/acl"
|
"git.ophivana.moe/cat/fortify/acl"
|
||||||
"git.ophivana.moe/cat/fortify/dbus"
|
"git.ophivana.moe/cat/fortify/dbus"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -14,7 +14,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (seal *appSeal) shareDBus(config [2]*dbus.Config) error {
|
func (seal *appSeal) shareDBus(config [2]*dbus.Config) error {
|
||||||
if !seal.et.Has(state.EnableDBus) {
|
if !seal.et.Has(system.EDBus) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/acl"
|
"git.ophivana.moe/cat/fortify/acl"
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -30,7 +30,7 @@ func (seal *appSeal) shareDisplay() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set up wayland
|
// set up wayland
|
||||||
if seal.et.Has(state.EnableWayland) {
|
if seal.et.Has(system.EWayland) {
|
||||||
if wd, ok := os.LookupEnv(waylandDisplay); !ok {
|
if wd, ok := os.LookupEnv(waylandDisplay); !ok {
|
||||||
return fmsg.WrapError(ErrWayland,
|
return fmsg.WrapError(ErrWayland,
|
||||||
"WAYLAND_DISPLAY is not set")
|
"WAYLAND_DISPLAY is not set")
|
||||||
@ -44,7 +44,7 @@ func (seal *appSeal) shareDisplay() error {
|
|||||||
seal.sys.bwrap.Bind(wpi, w)
|
seal.sys.bwrap.Bind(wpi, w)
|
||||||
|
|
||||||
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
|
// ensure Wayland socket ACL (e.g. `/run/user/%d/wayland-%d`)
|
||||||
seal.sys.UpdatePermType(state.EnableWayland, wp, acl.Read, acl.Write, acl.Execute)
|
seal.sys.UpdatePermType(system.EWayland, wp, acl.Read, acl.Write, acl.Execute)
|
||||||
} else {
|
} else {
|
||||||
// set wayland socket path (e.g. `/run/user/%d/wayland-%d`)
|
// set wayland socket path (e.g. `/run/user/%d/wayland-%d`)
|
||||||
seal.wl = path.Join(seal.RuntimePath, wd)
|
seal.wl = path.Join(seal.RuntimePath, wd)
|
||||||
@ -52,7 +52,7 @@ func (seal *appSeal) shareDisplay() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// set up X11
|
// set up X11
|
||||||
if seal.et.Has(state.EnableX) {
|
if seal.et.Has(system.EX11) {
|
||||||
// discover X11 and grant user permission via the `ChangeHosts` command
|
// discover X11 and grant user permission via the `ChangeHosts` command
|
||||||
if d, ok := os.LookupEnv(display); !ok {
|
if d, ok := os.LookupEnv(display); !ok {
|
||||||
return fmsg.WrapError(ErrXDisplay,
|
return fmsg.WrapError(ErrXDisplay,
|
||||||
|
@ -8,7 +8,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -26,7 +26,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (seal *appSeal) sharePulse() error {
|
func (seal *appSeal) sharePulse() error {
|
||||||
if !seal.et.Has(state.EnablePulse) {
|
if !seal.et.Has(system.EPulse) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,8 +202,8 @@ func (a *app) Wait() (int, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// enablements of remaining launchers
|
// enablements of remaining launchers
|
||||||
rt, ec := new(state.Enablements), new(system.Criteria)
|
rt, ec := new(system.Enablements), new(system.Criteria)
|
||||||
ec.Enablements = new(state.Enablements)
|
ec.Enablements = new(system.Enablements)
|
||||||
ec.Set(system.Process)
|
ec.Set(system.Process)
|
||||||
if states, err := b.Load(); err != nil {
|
if states, err := b.Load(); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -222,14 +222,14 @@ func (a *app) Wait() (int, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// invert accumulated enablements for cleanup
|
// invert accumulated enablements for cleanup
|
||||||
for i := state.Enablement(0); i < state.EnableLength; i++ {
|
for i := system.Enablement(0); i < system.Enablement(system.ELen); i++ {
|
||||||
if !rt.Has(i) {
|
if !rt.Has(i) {
|
||||||
ec.Set(i)
|
ec.Set(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if verbose.Get() {
|
if verbose.Get() {
|
||||||
labels := make([]string, 0, state.EnableLength+1)
|
labels := make([]string, 0, system.ELen+1)
|
||||||
for i := state.Enablement(0); i < state.EnableLength+2; i++ {
|
for i := system.Enablement(0); i < system.Enablement(system.ELen+2); i++ {
|
||||||
if ec.Has(i) {
|
if ec.Has(i) {
|
||||||
labels = append(labels, system.TypeString(i))
|
labels = append(labels, system.TypeString(i))
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ type appSeal struct {
|
|||||||
// path to launcher program
|
// path to launcher program
|
||||||
toolPath string
|
toolPath string
|
||||||
// pass-through enablement tracking from config
|
// pass-through enablement tracking from config
|
||||||
et state.Enablements
|
et system.Enablements
|
||||||
|
|
||||||
// prevents sharing from happening twice
|
// prevents sharing from happening twice
|
||||||
shared bool
|
shared bool
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -85,7 +86,7 @@ func (s *simpleStore) mustPrintLauncherState(w **tabwriter.Writer, now time.Time
|
|||||||
// build enablements string
|
// build enablements string
|
||||||
ets := strings.Builder{}
|
ets := strings.Builder{}
|
||||||
// append enablement strings in order
|
// append enablement strings in order
|
||||||
for i := Enablement(0); i < EnableLength; i++ {
|
for i := system.Enablement(0); i < system.Enablement(system.ELen); i++ {
|
||||||
if state.Capability.Has(i) {
|
if state.Capability.Has(i) {
|
||||||
ets.WriteString(", " + i.String())
|
ets.WriteString(", " + i.String())
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,8 @@ package state
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"git.ophivana.moe/cat/fortify/internal/system"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Store interface {
|
type Store interface {
|
||||||
@ -29,7 +31,7 @@ type State struct {
|
|||||||
// command used to seal the app
|
// command used to seal the app
|
||||||
Command []string
|
Command []string
|
||||||
// capability enablements applied to child
|
// capability enablements applied to child
|
||||||
Capability Enablements
|
Capability system.Enablements
|
||||||
|
|
||||||
// resolved launcher path
|
// resolved launcher path
|
||||||
Launcher string
|
Launcher string
|
||||||
|
@ -6,7 +6,6 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/acl"
|
"git.ophivana.moe/cat/fortify/acl"
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -16,7 +15,7 @@ func (sys *I) UpdatePerm(path string, perms ...acl.Perm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// UpdatePermType appends an acl update Op.
|
// UpdatePermType appends an acl update Op.
|
||||||
func (sys *I) UpdatePermType(et state.Enablement, path string, perms ...acl.Perm) {
|
func (sys *I) UpdatePermType(et Enablement, path string, perms ...acl.Perm) {
|
||||||
sys.lock.Lock()
|
sys.lock.Lock()
|
||||||
defer sys.lock.Unlock()
|
defer sys.lock.Unlock()
|
||||||
|
|
||||||
@ -24,12 +23,12 @@ func (sys *I) UpdatePermType(et state.Enablement, path string, perms ...acl.Perm
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ACL struct {
|
type ACL struct {
|
||||||
et state.Enablement
|
et Enablement
|
||||||
path string
|
path string
|
||||||
perms []acl.Perm
|
perms []acl.Perm
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *ACL) Type() state.Enablement {
|
func (a *ACL) Type() Enablement {
|
||||||
return a.et
|
return a.et
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/dbus"
|
"git.ophivana.moe/cat/fortify/dbus"
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,7 +68,7 @@ type DBus struct {
|
|||||||
done chan struct{}
|
done chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DBus) Type() state.Enablement {
|
func (d *DBus) Type() Enablement {
|
||||||
return Process
|
return Process
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package state
|
package system
|
||||||
|
|
||||||
type (
|
type (
|
||||||
// Enablement represents an optional system resource
|
// Enablement represents an optional system resource
|
||||||
@ -8,21 +8,21 @@ type (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
EnableWayland Enablement = iota
|
EWayland Enablement = iota
|
||||||
EnableX
|
EX11
|
||||||
EnableDBus
|
EDBus
|
||||||
EnablePulse
|
EPulse
|
||||||
|
|
||||||
EnableLength
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var enablementString = [EnableLength]string{
|
var enablementString = [...]string{
|
||||||
"Wayland",
|
EWayland: "Wayland",
|
||||||
"X11",
|
EX11: "X11",
|
||||||
"D-Bus",
|
EDBus: "D-Bus",
|
||||||
"PulseAudio",
|
EPulse: "PulseAudio",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ELen = len(enablementString)
|
||||||
|
|
||||||
func (e Enablement) String() string {
|
func (e Enablement) String() string {
|
||||||
return enablementString[e]
|
return enablementString[e]
|
||||||
}
|
}
|
@ -6,7 +6,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -19,7 +18,7 @@ func (sys *I) Ensure(name string, perm os.FileMode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ephemeral ensures the temporary existence and mode of a directory through the life of et.
|
// Ephemeral ensures the temporary existence and mode of a directory through the life of et.
|
||||||
func (sys *I) Ephemeral(et state.Enablement, name string, perm os.FileMode) {
|
func (sys *I) Ephemeral(et Enablement, name string, perm os.FileMode) {
|
||||||
sys.lock.Lock()
|
sys.lock.Lock()
|
||||||
defer sys.lock.Unlock()
|
defer sys.lock.Unlock()
|
||||||
|
|
||||||
@ -27,13 +26,13 @@ func (sys *I) Ephemeral(et state.Enablement, name string, perm os.FileMode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Mkdir struct {
|
type Mkdir struct {
|
||||||
et state.Enablement
|
et Enablement
|
||||||
path string
|
path string
|
||||||
perm os.FileMode
|
perm os.FileMode
|
||||||
ephemeral bool
|
ephemeral bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Mkdir) Type() state.Enablement {
|
func (m *Mkdir) Type() Enablement {
|
||||||
return m.et
|
return m.et
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,19 +4,17 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Process type is unconditionally reverted on exit.
|
|
||||||
Process = state.EnableLength + 1
|
|
||||||
// User type is reverted at final launcher exit.
|
// User type is reverted at final launcher exit.
|
||||||
User = state.EnableLength
|
User = Enablement(ELen)
|
||||||
|
// Process type is unconditionally reverted on exit.
|
||||||
|
Process = Enablement(ELen + 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
type Criteria struct {
|
type Criteria struct {
|
||||||
*state.Enablements
|
*Enablements
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec *Criteria) hasType(o Op) bool {
|
func (ec *Criteria) hasType(o Op) bool {
|
||||||
@ -31,7 +29,7 @@ func (ec *Criteria) hasType(o Op) bool {
|
|||||||
// Op is a reversible system operation.
|
// Op is a reversible system operation.
|
||||||
type Op interface {
|
type Op interface {
|
||||||
// Type returns Op's enablement type.
|
// Type returns Op's enablement type.
|
||||||
Type() state.Enablement
|
Type() Enablement
|
||||||
|
|
||||||
// apply the Op
|
// apply the Op
|
||||||
apply(sys *I) error
|
apply(sys *I) error
|
||||||
@ -43,7 +41,7 @@ type Op interface {
|
|||||||
String() string
|
String() string
|
||||||
}
|
}
|
||||||
|
|
||||||
func TypeString(e state.Enablement) string {
|
func TypeString(e Enablement) string {
|
||||||
switch e {
|
switch e {
|
||||||
case User:
|
case User:
|
||||||
return "User"
|
return "User"
|
||||||
|
@ -9,7 +9,6 @@ import (
|
|||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/acl"
|
"git.ophivana.moe/cat/fortify/acl"
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -19,7 +18,7 @@ func (sys *I) CopyFile(dst, src string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CopyFileType registers a file copying Op labelled with type et.
|
// CopyFileType registers a file copying Op labelled with type et.
|
||||||
func (sys *I) CopyFileType(et state.Enablement, dst, src string) {
|
func (sys *I) CopyFileType(et Enablement, dst, src string) {
|
||||||
sys.lock.Lock()
|
sys.lock.Lock()
|
||||||
sys.ops = append(sys.ops, &Tmpfile{et, tmpfileCopy, dst, src})
|
sys.ops = append(sys.ops, &Tmpfile{et, tmpfileCopy, dst, src})
|
||||||
sys.lock.Unlock()
|
sys.lock.Unlock()
|
||||||
@ -33,7 +32,7 @@ func (sys *I) Link(oldname, newname string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// LinkFileType registers a file linking Op labelled with type et.
|
// LinkFileType registers a file linking Op labelled with type et.
|
||||||
func (sys *I) LinkFileType(et state.Enablement, oldname, newname string) {
|
func (sys *I) LinkFileType(et Enablement, oldname, newname string) {
|
||||||
sys.lock.Lock()
|
sys.lock.Lock()
|
||||||
defer sys.lock.Unlock()
|
defer sys.lock.Unlock()
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ func (sys *I) Write(dst, src string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// WriteType registers a file writing Op labelled with type et.
|
// WriteType registers a file writing Op labelled with type et.
|
||||||
func (sys *I) WriteType(et state.Enablement, dst, src string) {
|
func (sys *I) WriteType(et Enablement, dst, src string) {
|
||||||
sys.lock.Lock()
|
sys.lock.Lock()
|
||||||
sys.ops = append(sys.ops, &Tmpfile{et, tmpfileWrite, dst, src})
|
sys.ops = append(sys.ops, &Tmpfile{et, tmpfileWrite, dst, src})
|
||||||
sys.lock.Unlock()
|
sys.lock.Unlock()
|
||||||
@ -61,12 +60,12 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Tmpfile struct {
|
type Tmpfile struct {
|
||||||
et state.Enablement
|
et Enablement
|
||||||
method uint8
|
method uint8
|
||||||
dst, src string
|
dst, src string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Tmpfile) Type() state.Enablement {
|
func (t *Tmpfile) Type() Enablement {
|
||||||
return t.et
|
return t.et
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
"git.ophivana.moe/cat/fortify/internal/fmsg"
|
||||||
"git.ophivana.moe/cat/fortify/internal/state"
|
|
||||||
"git.ophivana.moe/cat/fortify/internal/verbose"
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
||||||
"git.ophivana.moe/cat/fortify/xcb"
|
"git.ophivana.moe/cat/fortify/xcb"
|
||||||
)
|
)
|
||||||
@ -19,8 +18,8 @@ func (sys *I) ChangeHosts(username string) {
|
|||||||
|
|
||||||
type XHost string
|
type XHost string
|
||||||
|
|
||||||
func (x XHost) Type() state.Enablement {
|
func (x XHost) Type() Enablement {
|
||||||
return state.EnableX
|
return EX11
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x XHost) apply(_ *I) error {
|
func (x XHost) apply(_ *I) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user