aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app
diff options
context:
space:
mode:
Diffstat (limited to 'internal/app')
-rw-r--r--internal/app/app_nixos_linux_test.go3
-rw-r--r--internal/app/app_pd_linux_test.go5
-rw-r--r--internal/app/app_test.go2
-rw-r--r--internal/app/export_test.go9
-rw-r--r--internal/app/process.go2
-rw-r--r--internal/app/seal.go7
6 files changed, 16 insertions, 12 deletions
diff --git a/internal/app/app_nixos_linux_test.go b/internal/app/app_nixos_linux_test.go
index e2aa5a40..b6f5e44f 100644
--- a/internal/app/app_nixos_linux_test.go
+++ b/internal/app/app_nixos_linux_test.go
@@ -1,6 +1,7 @@
package app_test
import (
+ "context"
"syscall"
"hakurei.app/container"
@@ -74,7 +75,7 @@ var testCasesNixos = []sealTestCase{
0x4c, 0xf0, 0x73, 0xbd,
0xb4, 0x6e, 0xb5, 0xc1,
},
- system.New(1000001).
+ system.New(context.TODO(), 1000001).
Ensure("/tmp/hakurei.1971", 0711).
Ensure("/tmp/hakurei.1971/runtime", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime", acl.Execute).
Ensure("/tmp/hakurei.1971/runtime/1", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime/1", acl.Read, acl.Write, acl.Execute).
diff --git a/internal/app/app_pd_linux_test.go b/internal/app/app_pd_linux_test.go
index 384f5a0e..7bc94734 100644
--- a/internal/app/app_pd_linux_test.go
+++ b/internal/app/app_pd_linux_test.go
@@ -1,6 +1,7 @@
package app_test
import (
+ "context"
"os"
"syscall"
@@ -23,7 +24,7 @@ var testCasesPd = []sealTestCase{
0xbd, 0x01, 0x78, 0x0e,
0xb9, 0xa6, 0x07, 0xac,
},
- system.New(1000000).
+ system.New(context.TODO(), 1000000).
Ensure("/tmp/hakurei.1971", 0711).
Ensure("/tmp/hakurei.1971/runtime", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime", acl.Execute).
Ensure("/tmp/hakurei.1971/runtime/0", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime/0", acl.Read, acl.Write, acl.Execute).
@@ -115,7 +116,7 @@ var testCasesPd = []sealTestCase{
0x82, 0xd4, 0x13, 0x36,
0x9b, 0x64, 0xce, 0x7c,
},
- system.New(1000009).
+ system.New(context.TODO(), 1000009).
Ensure("/tmp/hakurei.1971", 0711).
Ensure("/tmp/hakurei.1971/runtime", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime", acl.Execute).
Ensure("/tmp/hakurei.1971/runtime/9", 0700).UpdatePermType(system.User, "/tmp/hakurei.1971/runtime/9", acl.Read, acl.Write, acl.Execute).
diff --git a/internal/app/app_test.go b/internal/app/app_test.go
index 8b96cfba..ab94b1ca 100644
--- a/internal/app/app_test.go
+++ b/internal/app/app_test.go
@@ -30,7 +30,7 @@ func TestApp(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
- a := app.NewWithID(tc.id, tc.os)
+ a := app.NewWithID(t.Context(), tc.id, tc.os)
var (
gotSys *system.I
gotContainer *container.Params
diff --git a/internal/app/export_test.go b/internal/app/export_test.go
index b7ee7f73..3e5db9fb 100644
--- a/internal/app/export_test.go
+++ b/internal/app/export_test.go
@@ -1,17 +1,16 @@
package app
import (
+ "context"
+
"hakurei.app/container"
"hakurei.app/internal/app/state"
"hakurei.app/internal/sys"
"hakurei.app/system"
)
-func NewWithID(id state.ID, os sys.State) *App {
- a := new(App)
- a.id = newID(&id)
- a.sys = os
- return a
+func NewWithID(ctx context.Context, id state.ID, os sys.State) *App {
+ return &App{id: newID(&id), sys: os, ctx: ctx}
}
func AppIParams(a *App, seal *Outcome) (*system.I, *container.Params) {
diff --git a/internal/app/process.go b/internal/app/process.go
index 44355699..b89f0fc4 100644
--- a/internal/app/process.go
+++ b/internal/app/process.go
@@ -61,7 +61,7 @@ func (seal *Outcome) Run(rs *RunState) error {
// read comp value early to allow for early failure
hsuPath := internal.MustHsuPath()
- if err := seal.sys.Commit(seal.ctx); err != nil {
+ if err := seal.sys.Commit(); err != nil {
return err
}
store := state.NewMulti(seal.runDirPath.String())
diff --git a/internal/app/seal.go b/internal/app/seal.go
index ec42dc2d..047c3a74 100644
--- a/internal/app/seal.go
+++ b/internal/app/seal.go
@@ -146,8 +146,11 @@ type hsuUser struct {
}
func (seal *Outcome) finalise(ctx context.Context, sys sys.State, config *hst.Config) error {
+ if ctx == nil {
+ panic("invalid call to finalise")
+ }
if seal.ctx != nil {
- panic("finalise called twice")
+ panic("attempting to finalise twice")
}
seal.ctx = ctx
@@ -306,7 +309,7 @@ func (seal *Outcome) finalise(ctx context.Context, sys sys.State, config *hst.Co
share := &shareHost{seal: seal, sc: sys.Paths()}
seal.runDirPath = share.sc.RunDirPath
- seal.sys = system.New(seal.user.uid.unwrap())
+ seal.sys = system.New(seal.ctx, seal.user.uid.unwrap())
seal.sys.Ensure(share.sc.SharePath.String(), 0711)
{