aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-07 20:06:26 +0900
committerOphestra <cat@gensokyo.uk>2025-10-07 20:57:58 +0900
commit0e6c1a50260de141c50bb50fd3f2b2bcf9a3fe64 (patch)
treedfe9c40ceb8c1be8d2728a2db9017bffef174d3d /cmd
parentd23b4dc9e64d3f00e746c65f3038a1a6de44b8f5 (diff)
container/check: move absolute pathname
This allows use of absolute pathname values without importing container. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/hakurei/command.go7
-rw-r--r--cmd/hpkg/app.go7
-rw-r--r--cmd/hpkg/main.go5
-rw-r--r--cmd/hpkg/paths.go19
-rw-r--r--cmd/hpkg/with.go3
5 files changed, 23 insertions, 18 deletions
diff --git a/cmd/hakurei/command.go b/cmd/hakurei/command.go
index 0c2cb53d..851e0d05 100644
--- a/cmd/hakurei/command.go
+++ b/cmd/hakurei/command.go
@@ -16,6 +16,7 @@ import (
"hakurei.app/command"
"hakurei.app/container"
+ "hakurei.app/container/check"
"hakurei.app/hst"
"hakurei.app/internal"
"hakurei.app/internal/app"
@@ -107,7 +108,7 @@ func buildCommand(ctx context.Context, msg container.Msg, early *earlyHardeningE
// paths are identical, resolve inner shell and program path
shell := container.AbsFHSRoot.Append("bin", "sh")
- if a, err := container.NewAbs(os.Getenv("SHELL")); err == nil {
+ if a, err := check.NewAbs(os.Getenv("SHELL")); err == nil {
shell = a
}
progPath := shell
@@ -115,7 +116,7 @@ func buildCommand(ctx context.Context, msg container.Msg, early *earlyHardeningE
if p, err := exec.LookPath(args[0]); err != nil {
log.Fatal(errors.Unwrap(err))
return err
- } else if progPath, err = container.NewAbs(p); err != nil {
+ } else if progPath, err = check.NewAbs(p); err != nil {
log.Fatal(err.Error())
return err
}
@@ -201,7 +202,7 @@ func buildCommand(ctx context.Context, msg container.Msg, early *earlyHardeningE
passwdOnce.Do(passwdFunc)
homeDir = passwd.HomeDir
}
- if a, err := container.NewAbs(homeDir); err != nil {
+ if a, err := check.NewAbs(homeDir); err != nil {
log.Fatal(err.Error())
return err
} else {
diff --git a/cmd/hpkg/app.go b/cmd/hpkg/app.go
index da1fd301..d0092d14 100644
--- a/cmd/hpkg/app.go
+++ b/cmd/hpkg/app.go
@@ -6,6 +6,7 @@ import (
"os"
"hakurei.app/container"
+ "hakurei.app/container/check"
"hakurei.app/hst"
)
@@ -54,14 +55,14 @@ type appInfo struct {
// store path to nixGL source
NixGL string `json:"nix_gl,omitempty"`
// store path to activate-and-exec script
- Launcher *container.Absolute `json:"launcher"`
+ Launcher *check.Absolute `json:"launcher"`
// store path to /run/current-system
- CurrentSystem *container.Absolute `json:"current_system"`
+ CurrentSystem *check.Absolute `json:"current_system"`
// store path to home-manager activation package
ActivationPackage string `json:"activation_package"`
}
-func (app *appInfo) toHst(pathSet *appPathSet, pathname *container.Absolute, argv []string, flagDropShell bool) *hst.Config {
+func (app *appInfo) toHst(pathSet *appPathSet, pathname *check.Absolute, argv []string, flagDropShell bool) *hst.Config {
config := &hst.Config{
ID: app.ID,
diff --git a/cmd/hpkg/main.go b/cmd/hpkg/main.go
index 03247aac..dde0ca2b 100644
--- a/cmd/hpkg/main.go
+++ b/cmd/hpkg/main.go
@@ -12,6 +12,7 @@ import (
"hakurei.app/command"
"hakurei.app/container"
+ "hakurei.app/container/check"
"hakurei.app/hst"
)
@@ -79,11 +80,11 @@ func main() {
Extract package and set up for cleanup.
*/
- var workDir *container.Absolute
+ var workDir *check.Absolute
if p, err := os.MkdirTemp("", "hpkg.*"); err != nil {
log.Printf("cannot create temporary directory: %v", err)
return err
- } else if workDir, err = container.NewAbs(p); err != nil {
+ } else if workDir, err = check.NewAbs(p); err != nil {
log.Printf("invalid temporary directory: %v", err)
return err
}
diff --git a/cmd/hpkg/paths.go b/cmd/hpkg/paths.go
index ee4b7e71..c1d9ae3a 100644
--- a/cmd/hpkg/paths.go
+++ b/cmd/hpkg/paths.go
@@ -8,18 +8,19 @@ import (
"sync/atomic"
"hakurei.app/container"
+ "hakurei.app/container/check"
"hakurei.app/hst"
)
const bash = "bash"
var (
- dataHome *container.Absolute
+ dataHome *check.Absolute
)
func init() {
// dataHome
- if a, err := container.NewAbs(os.Getenv("HAKUREI_DATA_HOME")); err == nil {
+ if a, err := check.NewAbs(os.Getenv("HAKUREI_DATA_HOME")); err == nil {
dataHome = a
} else {
dataHome = container.AbsFHSVarLib.Append("hakurei/" + strconv.Itoa(os.Getuid()))
@@ -29,13 +30,13 @@ func init() {
var (
pathBin = container.AbsFHSRoot.Append("bin")
- pathNix = container.MustAbs("/nix/")
+ pathNix = check.MustAbs("/nix/")
pathNixStore = pathNix.Append("store/")
pathCurrentSystem = container.AbsFHSRun.Append("current-system")
pathSwBin = pathCurrentSystem.Append("sw/bin/")
pathShell = pathSwBin.Append(bash)
- pathData = container.MustAbs("/data")
+ pathData = check.MustAbs("/data")
pathDataData = pathData.Append("data")
)
@@ -64,15 +65,15 @@ func mustRun(msg container.Msg, name string, arg ...string) {
type appPathSet struct {
// ${dataHome}/${id}
- baseDir *container.Absolute
+ baseDir *check.Absolute
// ${baseDir}/app
- metaPath *container.Absolute
+ metaPath *check.Absolute
// ${baseDir}/files
- homeDir *container.Absolute
+ homeDir *check.Absolute
// ${baseDir}/cache
- cacheDir *container.Absolute
+ cacheDir *check.Absolute
// ${baseDir}/cache/nix
- nixPath *container.Absolute
+ nixPath *check.Absolute
}
func pathSetByApp(id string) *appPathSet {
diff --git a/cmd/hpkg/with.go b/cmd/hpkg/with.go
index b3ccd47a..99de04d5 100644
--- a/cmd/hpkg/with.go
+++ b/cmd/hpkg/with.go
@@ -6,6 +6,7 @@ import (
"strings"
"hakurei.app/container"
+ "hakurei.app/container/check"
"hakurei.app/hst"
)
@@ -63,7 +64,7 @@ func withNixDaemon(
func withCacheDir(
ctx context.Context,
msg container.Msg,
- action string, command []string, workDir *container.Absolute,
+ action string, command []string, workDir *check.Absolute,
app *appInfo, pathSet *appPathSet, dropShell bool, beforeFail func()) {
mustRunAppDropShell(ctx, msg, &hst.Config{
ID: app.ID,