aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-29 04:32:43 +0900
committerOphestra <cat@gensokyo.uk>2025-10-29 04:33:13 +0900
commita0b4e47acc228e48165966d8e139277b8f6f450e (patch)
treed363a6781536ce946aa445271ca1d3df587e6031
parenta52f7038e5a607dd0901244abb791c96deaf9c2d (diff)
internal/outcome: rename from app
This is less ambiguous, and more accurately describes the purpose of the package. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/hakurei/command.go14
-rw-r--r--cmd/hakurei/parse.go6
-rw-r--r--cmd/hakurei/print.go6
-rw-r--r--cmd/hakurei/print_test.go2
-rw-r--r--internal/outcome/dispatcher.go (renamed from internal/app/dispatcher.go)2
-rw-r--r--internal/outcome/dispatcher_test.go (renamed from internal/app/dispatcher_test.go)20
-rw-r--r--internal/outcome/finalise.go (renamed from internal/app/finalise.go)2
-rw-r--r--internal/outcome/hsu.go (renamed from internal/app/hsu.go)2
-rw-r--r--internal/outcome/hsu_test.go (renamed from internal/app/hsu_test.go)2
-rw-r--r--internal/outcome/main.go (renamed from internal/app/app.go)3
-rw-r--r--internal/outcome/main_test.go (renamed from internal/app/app_test.go)21
-rw-r--r--internal/outcome/outcome.go (renamed from internal/app/outcome.go)3
-rw-r--r--internal/outcome/outcome_test.go (renamed from internal/app/outcome_test.go)2
-rw-r--r--internal/outcome/process.go (renamed from internal/app/process.go)4
-rw-r--r--internal/outcome/shim-signal.c (renamed from internal/app/shim-signal.c)0
-rw-r--r--internal/outcome/shim-signal.h (renamed from internal/app/shim-signal.h)0
-rw-r--r--internal/outcome/shim.go (renamed from internal/app/shim.go)2
-rw-r--r--internal/outcome/shim_test.go (renamed from internal/app/shim_test.go)4
-rw-r--r--internal/outcome/spaccount.go (renamed from internal/app/spaccount.go)2
-rw-r--r--internal/outcome/spaccount_test.go (renamed from internal/app/spaccount_test.go)2
-rw-r--r--internal/outcome/spcontainer.go (renamed from internal/app/spcontainer.go)2
-rw-r--r--internal/outcome/spcontainer_test.go (renamed from internal/app/spcontainer_test.go)2
-rw-r--r--internal/outcome/spdbus.go (renamed from internal/app/spdbus.go)2
-rw-r--r--internal/outcome/spdbus_test.go (renamed from internal/app/spdbus_test.go)2
-rw-r--r--internal/outcome/sppulse.go (renamed from internal/app/sppulse.go)2
-rw-r--r--internal/outcome/sppulse_test.go (renamed from internal/app/sppulse_test.go)2
-rw-r--r--internal/outcome/spruntime.go (renamed from internal/app/spruntime.go)2
-rw-r--r--internal/outcome/spruntime_test.go (renamed from internal/app/spruntime_test.go)2
-rw-r--r--internal/outcome/sptmpdir.go (renamed from internal/app/sptmpdir.go)2
-rw-r--r--internal/outcome/sptmpdir_test.go (renamed from internal/app/sptmpdir_test.go)2
-rw-r--r--internal/outcome/spwayland.go (renamed from internal/app/spwayland.go)2
-rw-r--r--internal/outcome/spwayland_test.go (renamed from internal/app/spwayland_test.go)2
-rw-r--r--internal/outcome/spx11.go (renamed from internal/app/spx11.go)2
-rw-r--r--internal/outcome/spx11_test.go (renamed from internal/app/spx11_test.go)2
-rw-r--r--internal/state/data.go (renamed from internal/app/state/data.go)0
-rw-r--r--internal/state/data_test.go (renamed from internal/app/state/data_test.go)0
-rw-r--r--internal/state/header.go (renamed from internal/app/state/header.go)0
-rw-r--r--internal/state/header_test.go (renamed from internal/app/state/header_test.go)0
-rw-r--r--internal/state/join.go (renamed from internal/app/state/join.go)0
-rw-r--r--internal/state/segment.go (renamed from internal/app/state/segment.go)0
-rw-r--r--internal/state/segment_test.go (renamed from internal/app/state/segment_test.go)0
-rw-r--r--internal/state/state.go (renamed from internal/app/state/state.go)0
-rw-r--r--internal/state/state_test.go (renamed from internal/app/state/state_test.go)2
-rw-r--r--internal/state/store.go (renamed from internal/app/state/store.go)0
-rw-r--r--internal/state/store_test.go (renamed from internal/app/state/store_test.go)0
45 files changed, 65 insertions, 64 deletions
diff --git a/cmd/hakurei/command.go b/cmd/hakurei/command.go
index 968bb561..f8173e60 100644
--- a/cmd/hakurei/command.go
+++ b/cmd/hakurei/command.go
@@ -18,9 +18,9 @@ import (
"hakurei.app/container/fhs"
"hakurei.app/hst"
"hakurei.app/internal"
- "hakurei.app/internal/app"
- "hakurei.app/internal/app/state"
"hakurei.app/internal/env"
+ "hakurei.app/internal/outcome"
+ "hakurei.app/internal/state"
"hakurei.app/message"
"hakurei.app/system/dbus"
)
@@ -51,7 +51,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr
Flag(&flagVerbose, "v", command.BoolFlag(false), "Increase log verbosity").
Flag(&flagJSON, "json", command.BoolFlag(false), "Serialise output in JSON when applicable")
- c.Command("shim", command.UsageInternal, func([]string) error { app.Shim(msg); return errSuccess })
+ c.Command("shim", command.UsageInternal, func([]string) error { outcome.Shim(msg); return errSuccess })
c.Command("app", "Load and start container from configuration file", func(args []string) error {
if len(args) < 1 {
@@ -64,7 +64,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr
config.Container.Args = append(config.Container.Args, args[1:]...)
}
- app.Main(ctx, msg, config)
+ outcome.Main(ctx, msg, config)
panic("unreachable")
})
@@ -96,7 +96,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr
passwd *user.User
passwdOnce sync.Once
passwdFunc = func() {
- us := strconv.Itoa(app.HsuUid(new(app.Hsu).MustID(msg), flagIdentity))
+ us := strconv.Itoa(outcome.HsuUid(new(outcome.Hsu).MustID(msg), flagIdentity))
if u, err := user.LookupId(us); err != nil {
msg.Verbosef("cannot look up uid %s", us)
passwd = &user.User{
@@ -258,7 +258,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr
}
}
- app.Main(ctx, msg, config)
+ outcome.Main(ctx, msg, config)
panic("unreachable")
}).
Flag(&flagDBusConfigSession, "dbus-config", command.StringFlag("builtin"),
@@ -321,7 +321,7 @@ func buildCommand(ctx context.Context, msg message.Msg, early *earlyHardeningErr
var flagShort bool
c.NewCommand("ps", "List active instances", func(args []string) error {
var sc hst.Paths
- env.CopyPaths().Copy(&sc, new(app.Hsu).MustID(nil))
+ env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil))
printPs(os.Stdout, time.Now().UTC(), state.NewMulti(msg, sc.RunDirPath), flagShort, flagJSON)
return errSuccess
}).Flag(&flagShort, "short", command.BoolFlag(false), "Print instance id")
diff --git a/cmd/hakurei/parse.go b/cmd/hakurei/parse.go
index 70419751..bbb9e81c 100644
--- a/cmd/hakurei/parse.go
+++ b/cmd/hakurei/parse.go
@@ -11,9 +11,9 @@ import (
"syscall"
"hakurei.app/hst"
- "hakurei.app/internal/app"
- "hakurei.app/internal/app/state"
"hakurei.app/internal/env"
+ "hakurei.app/internal/outcome"
+ "hakurei.app/internal/state"
"hakurei.app/message"
)
@@ -84,7 +84,7 @@ func shortIdentifierString(s string) string {
func tryIdentifier(msg message.Msg, name string) (config *hst.Config, entry *hst.State) {
return tryIdentifierEntries(msg, name, func() map[hst.ID]*hst.State {
var sc hst.Paths
- env.CopyPaths().Copy(&sc, new(app.Hsu).MustID(nil))
+ env.CopyPaths().Copy(&sc, new(outcome.Hsu).MustID(nil))
s := state.NewMulti(msg, sc.RunDirPath)
if entries, err := state.Join(s); err != nil {
msg.GetLogger().Printf("cannot join store: %v", err) // not fatal
diff --git a/cmd/hakurei/print.go b/cmd/hakurei/print.go
index 0dcb59ee..ff4764ca 100644
--- a/cmd/hakurei/print.go
+++ b/cmd/hakurei/print.go
@@ -12,9 +12,9 @@ import (
"hakurei.app/hst"
"hakurei.app/internal"
- "hakurei.app/internal/app"
- "hakurei.app/internal/app/state"
"hakurei.app/internal/env"
+ "hakurei.app/internal/outcome"
+ "hakurei.app/internal/state"
"hakurei.app/message"
)
@@ -23,7 +23,7 @@ func printShowSystem(output io.Writer, short, flagJSON bool) {
t := newPrinter(output)
defer t.MustFlush()
- info := &hst.Info{Version: internal.Version(), User: new(app.Hsu).MustID(nil)}
+ info := &hst.Info{Version: internal.Version(), User: new(outcome.Hsu).MustID(nil)}
env.CopyPaths().Copy(&info.Paths, info.User)
if flagJSON {
diff --git a/cmd/hakurei/print_test.go b/cmd/hakurei/print_test.go
index 343073ab..abdcefc6 100644
--- a/cmd/hakurei/print_test.go
+++ b/cmd/hakurei/print_test.go
@@ -6,7 +6,7 @@ import (
"time"
"hakurei.app/hst"
- "hakurei.app/internal/app/state"
+ "hakurei.app/internal/state"
)
var (
diff --git a/internal/app/dispatcher.go b/internal/outcome/dispatcher.go
index b081ece1..77ef646a 100644
--- a/internal/app/dispatcher.go
+++ b/internal/outcome/dispatcher.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"context"
diff --git a/internal/app/dispatcher_test.go b/internal/outcome/dispatcher_test.go
index 839e9e42..e01946c1 100644
--- a/internal/app/dispatcher_test.go
+++ b/internal/outcome/dispatcher_test.go
@@ -1,8 +1,9 @@
-package app
+package outcome
import (
"bytes"
"context"
+ "encoding/json"
"io"
"io/fs"
"log"
@@ -585,6 +586,23 @@ type errorReader struct{ val error }
func (r errorReader) Read([]byte) (int, error) { return -1, r.val }
+// mustMarshal returns the result of [json.Marshal] as a string and panics on error.
+func mustMarshal(v any) string {
+ if b, err := json.Marshal(v); err != nil {
+ panic(err.Error())
+ } else {
+ return string(b)
+ }
+}
+
+// m is a shortcut for [check.MustAbs].
+func m(pathname string) *check.Absolute { return check.MustAbs(pathname) }
+
+// f returns [hst.FilesystemConfig] wrapped in its [json] adapter.
+func f(c hst.FilesystemConfig) hst.FilesystemConfigJSON {
+ return hst.FilesystemConfigJSON{FilesystemConfig: c}
+}
+
// panicMsgContext implements [message.Msg] and [context.Context] with methods wrapping panic.
// This should be assigned to test cases to be checked against.
type panicMsgContext struct{}
diff --git a/internal/app/finalise.go b/internal/outcome/finalise.go
index 6cb4f586..184bd905 100644
--- a/internal/app/finalise.go
+++ b/internal/outcome/finalise.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"context"
diff --git a/internal/app/hsu.go b/internal/outcome/hsu.go
index 1286249a..b1107331 100644
--- a/internal/app/hsu.go
+++ b/internal/outcome/hsu.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"errors"
diff --git a/internal/app/hsu_test.go b/internal/outcome/hsu_test.go
index fad724da..4ee7fa9c 100644
--- a/internal/app/hsu_test.go
+++ b/internal/outcome/hsu_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"os"
diff --git a/internal/app/app.go b/internal/outcome/main.go
index 03608517..06327963 100644
--- a/internal/app/app.go
+++ b/internal/outcome/main.go
@@ -1,5 +1,4 @@
-// Package app implements high-level hakurei container behaviour.
-package app
+package outcome
import (
"context"
diff --git a/internal/app/app_test.go b/internal/outcome/main_test.go
index 96113eb8..ee1c0374 100644
--- a/internal/app/app_test.go
+++ b/internal/outcome/main_test.go
@@ -1,9 +1,8 @@
-package app
+package outcome
import (
"bytes"
"encoding/gob"
- "encoding/json"
"errors"
"fmt"
"io"
@@ -28,7 +27,7 @@ import (
"hakurei.app/system/dbus"
)
-func TestApp(t *testing.T) {
+func TestOutcomeMain(t *testing.T) {
t.Parallel()
msg := message.NewMsg(nil)
msg.SwapVerbose(testing.Verbose())
@@ -653,14 +652,6 @@ func TestApp(t *testing.T) {
}
}
-func mustMarshal(v any) string {
- if b, err := json.Marshal(v); err != nil {
- panic(err.Error())
- } else {
- return string(b)
- }
-}
-
func stubDirEntries(names ...string) (e []fs.DirEntry, err error) {
e = make([]fs.DirEntry, len(names))
for i, name := range names {
@@ -930,11 +921,3 @@ func (k *stubNixOS) fatalf(format string, v ...any) { panic(fmt.Sprintf(format,
func (k *stubNixOS) isVerbose() bool { return true }
func (k *stubNixOS) verbose(v ...any) { log.Print(v...) }
func (k *stubNixOS) verbosef(format string, v ...any) { log.Printf(format, v...) }
-
-func m(pathname string) *check.Absolute {
- return check.MustAbs(pathname)
-}
-
-func f(c hst.FilesystemConfig) hst.FilesystemConfigJSON {
- return hst.FilesystemConfigJSON{FilesystemConfig: c}
-}
diff --git a/internal/app/outcome.go b/internal/outcome/outcome.go
index 59cdfbd8..2397b725 100644
--- a/internal/app/outcome.go
+++ b/internal/outcome/outcome.go
@@ -1,4 +1,5 @@
-package app
+// Package outcome implements the outcome of the privileged and container sides of a hakurei container.
+package outcome
import (
"errors"
diff --git a/internal/app/outcome_test.go b/internal/outcome/outcome_test.go
index 5ea3ff99..a03e2501 100644
--- a/internal/app/outcome_test.go
+++ b/internal/outcome/outcome_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"testing"
diff --git a/internal/app/process.go b/internal/outcome/process.go
index 7873109a..d96c7efa 100644
--- a/internal/app/process.go
+++ b/internal/outcome/process.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"context"
@@ -16,7 +16,7 @@ import (
"hakurei.app/container/fhs"
"hakurei.app/hst"
"hakurei.app/internal"
- "hakurei.app/internal/app/state"
+ "hakurei.app/internal/state"
"hakurei.app/message"
"hakurei.app/system"
)
diff --git a/internal/app/shim-signal.c b/internal/outcome/shim-signal.c
index fc005347..fc005347 100644
--- a/internal/app/shim-signal.c
+++ b/internal/outcome/shim-signal.c
diff --git a/internal/app/shim-signal.h b/internal/outcome/shim-signal.h
index bdeae3b0..bdeae3b0 100644
--- a/internal/app/shim-signal.h
+++ b/internal/outcome/shim-signal.h
diff --git a/internal/app/shim.go b/internal/outcome/shim.go
index 11affddd..53d04ea2 100644
--- a/internal/app/shim.go
+++ b/internal/outcome/shim.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"context"
diff --git a/internal/app/shim_test.go b/internal/outcome/shim_test.go
index 19dedd6f..e4de9c37 100644
--- a/internal/app/shim_test.go
+++ b/internal/outcome/shim_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"bytes"
@@ -118,7 +118,7 @@ func TestShimEntrypoint(t *testing.T) {
spTmpdirOp{},
spAccountOp{},
&spWaylandOp{},
- &spPulseOp{(*[256]byte)(bytes.Repeat([]byte{0}, pulseCookieSizeMax)), pulseCookieSizeMax},
+ &spPulseOp{(*[pulseCookieSizeMax]byte)(bytes.Repeat([]byte{0}, pulseCookieSizeMax)), pulseCookieSizeMax},
&spDBusOp{true},
&spFilesystemOp{},
}},
diff --git a/internal/app/spaccount.go b/internal/outcome/spaccount.go
index c9f08fe9..0e9c602a 100644
--- a/internal/app/spaccount.go
+++ b/internal/outcome/spaccount.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spaccount_test.go b/internal/outcome/spaccount_test.go
index c5fb7b5b..c1693dd8 100644
--- a/internal/app/spaccount_test.go
+++ b/internal/outcome/spaccount_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"os"
diff --git a/internal/app/spcontainer.go b/internal/outcome/spcontainer.go
index d411cb9f..13808ca1 100644
--- a/internal/app/spcontainer.go
+++ b/internal/outcome/spcontainer.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spcontainer_test.go b/internal/outcome/spcontainer_test.go
index 154b9297..3b003054 100644
--- a/internal/app/spcontainer_test.go
+++ b/internal/outcome/spcontainer_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"errors"
diff --git a/internal/app/spdbus.go b/internal/outcome/spdbus.go
index 429674d0..afb62ca0 100644
--- a/internal/app/spdbus.go
+++ b/internal/outcome/spdbus.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spdbus_test.go b/internal/outcome/spdbus_test.go
index 8dcf102c..26f1fdcc 100644
--- a/internal/app/spdbus_test.go
+++ b/internal/outcome/spdbus_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"syscall"
diff --git a/internal/app/sppulse.go b/internal/outcome/sppulse.go
index fe63f366..a2dc2401 100644
--- a/internal/app/sppulse.go
+++ b/internal/outcome/sppulse.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/sppulse_test.go b/internal/outcome/sppulse_test.go
index c6220731..9aecb198 100644
--- a/internal/app/sppulse_test.go
+++ b/internal/outcome/sppulse_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"bytes"
diff --git a/internal/app/spruntime.go b/internal/outcome/spruntime.go
index 25c04b83..b458826a 100644
--- a/internal/app/spruntime.go
+++ b/internal/outcome/spruntime.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spruntime_test.go b/internal/outcome/spruntime_test.go
index 1675a7e5..00056eda 100644
--- a/internal/app/spruntime_test.go
+++ b/internal/outcome/spruntime_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"testing"
diff --git a/internal/app/sptmpdir.go b/internal/outcome/sptmpdir.go
index 5b7b54b9..4776dad7 100644
--- a/internal/app/sptmpdir.go
+++ b/internal/outcome/sptmpdir.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/sptmpdir_test.go b/internal/outcome/sptmpdir_test.go
index 53b44fbe..afa641f6 100644
--- a/internal/app/sptmpdir_test.go
+++ b/internal/outcome/sptmpdir_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"testing"
diff --git a/internal/app/spwayland.go b/internal/outcome/spwayland.go
index d8c18386..54119de6 100644
--- a/internal/app/spwayland.go
+++ b/internal/outcome/spwayland.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spwayland_test.go b/internal/outcome/spwayland_test.go
index 89c81473..5cee8de7 100644
--- a/internal/app/spwayland_test.go
+++ b/internal/outcome/spwayland_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"testing"
diff --git a/internal/app/spx11.go b/internal/outcome/spx11.go
index 109cf0c0..506fa9ac 100644
--- a/internal/app/spx11.go
+++ b/internal/outcome/spx11.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"encoding/gob"
diff --git a/internal/app/spx11_test.go b/internal/outcome/spx11_test.go
index 0486a1e0..c958e946 100644
--- a/internal/app/spx11_test.go
+++ b/internal/outcome/spx11_test.go
@@ -1,4 +1,4 @@
-package app
+package outcome
import (
"os"
diff --git a/internal/app/state/data.go b/internal/state/data.go
index a680c96b..a680c96b 100644
--- a/internal/app/state/data.go
+++ b/internal/state/data.go
diff --git a/internal/app/state/data_test.go b/internal/state/data_test.go
index 6ad91e53..6ad91e53 100644
--- a/internal/app/state/data_test.go
+++ b/internal/state/data_test.go
diff --git a/internal/app/state/header.go b/internal/state/header.go
index 25b1e6af..25b1e6af 100644
--- a/internal/app/state/header.go
+++ b/internal/state/header.go
diff --git a/internal/app/state/header_test.go b/internal/state/header_test.go
index 18a620c2..18a620c2 100644
--- a/internal/app/state/header_test.go
+++ b/internal/state/header_test.go
diff --git a/internal/app/state/join.go b/internal/state/join.go
index 43a19b1d..43a19b1d 100644
--- a/internal/app/state/join.go
+++ b/internal/state/join.go
diff --git a/internal/app/state/segment.go b/internal/state/segment.go
index c8ab8c13..c8ab8c13 100644
--- a/internal/app/state/segment.go
+++ b/internal/state/segment.go
diff --git a/internal/app/state/segment_test.go b/internal/state/segment_test.go
index 834cb99a..834cb99a 100644
--- a/internal/app/state/segment_test.go
+++ b/internal/state/segment_test.go
diff --git a/internal/app/state/state.go b/internal/state/state.go
index 62b31865..62b31865 100644
--- a/internal/app/state/state.go
+++ b/internal/state/state.go
diff --git a/internal/app/state/state_test.go b/internal/state/state_test.go
index c387b2ec..eed2c890 100644
--- a/internal/app/state/state_test.go
+++ b/internal/state/state_test.go
@@ -10,7 +10,7 @@ import (
"hakurei.app/container/check"
"hakurei.app/hst"
- "hakurei.app/internal/app/state"
+ "hakurei.app/internal/state"
"hakurei.app/message"
)
diff --git a/internal/app/state/store.go b/internal/state/store.go
index 565e4ee5..565e4ee5 100644
--- a/internal/app/state/store.go
+++ b/internal/state/store.go
diff --git a/internal/app/state/store_test.go b/internal/state/store_test.go
index f58be18f..f58be18f 100644
--- a/internal/app/state/store_test.go
+++ b/internal/state/store_test.go