diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-08-12 04:38:45 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-08-14 04:52:49 +0900 |
| commit | 99ac96511bed17f48d908db3d00a1f48579ba011 (patch) | |
| tree | 30d404efb7256c9f053f64192068637d6b846db4 /cmd/hpkg | |
| parent | e99d7affb0c128fa82722f9b3d79c99b5e5918cd (diff) | |
hst/fs: interface filesystem config
This allows mount points to be represented by different underlying structs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/hpkg')
| -rw-r--r-- | cmd/hpkg/app.go | 18 | ||||
| -rw-r--r-- | cmd/hpkg/main.go | 16 | ||||
| -rw-r--r-- | cmd/hpkg/paths.go | 38 | ||||
| -rw-r--r-- | cmd/hpkg/with.go | 10 |
4 files changed, 41 insertions, 41 deletions
diff --git a/cmd/hpkg/app.go b/cmd/hpkg/app.go index 705b393b..131f839d 100644 --- a/cmd/hpkg/app.go +++ b/cmd/hpkg/app.go @@ -91,15 +91,15 @@ func (app *appInfo) toHst(pathSet *appPathSet, pathname *container.Absolute, arg Device: app.Device, Tty: app.Tty || flagDropShell, MapRealUID: app.MapRealUID, - Filesystem: []hst.FilesystemConfig{ - {Src: pathSet.nixPath.Append("store"), Dst: pathNixStore, Must: true}, - {Src: pathSet.metaPath, Dst: hst.AbsTmp.Append("app"), Must: true}, - {Src: container.AbsFHSEtc.Append("resolv.conf")}, - {Src: container.AbsFHSSys.Append("block")}, - {Src: container.AbsFHSSys.Append("bus")}, - {Src: container.AbsFHSSys.Append("class")}, - {Src: container.AbsFHSSys.Append("dev")}, - {Src: container.AbsFHSSys.Append("devices")}, + Filesystem: []hst.FilesystemConfigJSON{ + {FilesystemConfig: &hst.FSBind{Src: pathSet.nixPath.Append("store"), Dst: pathNixStore}}, + {FilesystemConfig: &hst.FSBind{Src: pathSet.metaPath, Dst: hst.AbsTmp.Append("app")}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSEtc.Append("resolv.conf"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("block"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("bus"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("class"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("dev"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("devices"), Optional: true}}, }, Link: []hst.LinkConfig{ {pathCurrentSystem, app.CurrentSystem.String()}, diff --git a/cmd/hpkg/main.go b/cmd/hpkg/main.go index b8d63045..15d0db1b 100644 --- a/cmd/hpkg/main.go +++ b/cmd/hpkg/main.go @@ -274,13 +274,13 @@ func main() { "--override-input nixpkgs path:/etc/nixpkgs " + "path:" + a.NixGL + "#nixVulkanNvidia", }, true, func(config *hst.Config) *hst.Config { - config.Container.Filesystem = append(config.Container.Filesystem, []hst.FilesystemConfig{ - {Src: container.AbsFHSEtc.Append("resolv.conf")}, - {Src: container.AbsFHSSys.Append("block")}, - {Src: container.AbsFHSSys.Append("bus")}, - {Src: container.AbsFHSSys.Append("class")}, - {Src: container.AbsFHSSys.Append("dev")}, - {Src: container.AbsFHSSys.Append("devices")}, + config.Container.Filesystem = append(config.Container.Filesystem, []hst.FilesystemConfigJSON{ + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSEtc.Append("resolv.conf"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("block"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("bus"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("class"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("dev"), Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSSys.Append("devices"), Optional: true}}, }...) appendGPUFilesystem(config) return config @@ -308,7 +308,7 @@ func main() { if a.GPU { config.Container.Filesystem = append(config.Container.Filesystem, - hst.FilesystemConfig{Src: pathSet.nixPath.Append(".nixGL"), Dst: hst.AbsTmp.Append("nixGL")}) + hst.FilesystemConfigJSON{FilesystemConfig: &hst.FSBind{Src: pathSet.nixPath.Append(".nixGL"), Dst: hst.AbsTmp.Append("nixGL")}}) appendGPUFilesystem(config) } diff --git a/cmd/hpkg/paths.go b/cmd/hpkg/paths.go index 095c24e5..bb705bc6 100644 --- a/cmd/hpkg/paths.go +++ b/cmd/hpkg/paths.go @@ -87,30 +87,30 @@ func pathSetByApp(id string) *appPathSet { } func appendGPUFilesystem(config *hst.Config) { - config.Container.Filesystem = append(config.Container.Filesystem, []hst.FilesystemConfig{ + config.Container.Filesystem = append(config.Container.Filesystem, []hst.FilesystemConfigJSON{ // flatpak commit 763a686d874dd668f0236f911de00b80766ffe79 - {Src: container.AbsFHSDev.Append("dri"), Device: true}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("dri"), Device: true, Optional: true}}, // mali - {Src: container.AbsFHSDev.Append("mali"), Device: true}, - {Src: container.AbsFHSDev.Append("mali0"), Device: true}, - {Src: container.AbsFHSDev.Append("umplock"), Device: true}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("mali"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("mali0"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("umplock"), Device: true, Optional: true}}, // nvidia - {Src: container.AbsFHSDev.Append("nvidiactl"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia-modeset"), Device: true}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidiactl"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia-modeset"), Device: true, Optional: true}}, // nvidia OpenCL/CUDA - {Src: container.AbsFHSDev.Append("nvidia-uvm"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia-uvm-tools"), Device: true}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia-uvm"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia-uvm-tools"), Device: true, Optional: true}}, // flatpak commit d2dff2875bb3b7e2cd92d8204088d743fd07f3ff - {Src: container.AbsFHSDev.Append("nvidia0"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia1"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia2"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia3"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia4"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia5"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia6"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia7"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia8"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia9"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia10"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia11"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia12"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia13"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia14"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia15"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia16"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia17"), Device: true}, - {Src: container.AbsFHSDev.Append("nvidia18"), Device: true}, {Src: container.AbsFHSDev.Append("nvidia19"), Device: true}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia0"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia1"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia2"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia3"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia4"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia5"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia6"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia7"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia8"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia9"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia10"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia11"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia12"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia13"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia14"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia15"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia16"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia17"), Device: true, Optional: true}}, + {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia18"), Device: true, Optional: true}}, {FilesystemConfig: &hst.FSBind{Src: container.AbsFHSDev.Append("nvidia19"), Device: true, Optional: true}}, }...) } diff --git a/cmd/hpkg/with.go b/cmd/hpkg/with.go index 72ca2457..305edf7e 100644 --- a/cmd/hpkg/with.go +++ b/cmd/hpkg/with.go @@ -48,8 +48,8 @@ func withNixDaemon( Net: net, SeccompFlags: seccomp.AllowMultiarch, Tty: dropShell, - Filesystem: []hst.FilesystemConfig{ - {Src: pathSet.nixPath, Dst: pathNix, Write: true, Must: true}, + Filesystem: []hst.FilesystemConfigJSON{ + {FilesystemConfig: &hst.FSBind{Src: pathSet.nixPath, Dst: pathNix, Write: true}}, }, Link: []hst.LinkConfig{ {pathCurrentSystem, app.CurrentSystem.String()}, @@ -88,9 +88,9 @@ func withCacheDir( Hostname: formatHostname(app.Name) + "-" + action, SeccompFlags: seccomp.AllowMultiarch, Tty: dropShell, - Filesystem: []hst.FilesystemConfig{ - {Src: workDir.Append("nix"), Dst: pathNix, Must: true}, - {Src: workDir, Dst: hst.AbsTmp.Append("bundle"), Must: true}, + Filesystem: []hst.FilesystemConfigJSON{ + {FilesystemConfig: &hst.FSBind{Src: workDir.Append("nix"), Dst: pathNix}}, + {FilesystemConfig: &hst.FSBind{Src: workDir, Dst: hst.AbsTmp.Append("bundle")}}, }, Link: []hst.LinkConfig{ {pathCurrentSystem, app.CurrentSystem.String()}, |
