From a5f0aa3f3077cb7bf3cbf7ac9e707ba165aceb4a Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 3 Oct 2025 16:59:29 +0900 Subject: [PATCH] internal/app: declutter and merge small files This should make internal/app easier to work with for the upcoming params to shim. Signed-off-by: Ophestra --- cmd/hakurei/command.go | 23 ++++----------------- internal/app/{paths.go => env.go} | 0 internal/app/{paths_test.go => env_test.go} | 0 internal/app/finalise.go | 11 ++++++++++ internal/app/path.go | 6 +++++- internal/app/strings.go | 16 -------------- 6 files changed, 20 insertions(+), 36 deletions(-) rename internal/app/{paths.go => env.go} (100%) rename internal/app/{paths_test.go => env_test.go} (100%) delete mode 100644 internal/app/strings.go diff --git a/cmd/hakurei/command.go b/cmd/hakurei/command.go index ddd07ba..0c3e5e7 100644 --- a/cmd/hakurei/command.go +++ b/cmd/hakurei/command.go @@ -237,25 +237,10 @@ func buildCommand(ctx context.Context, msg container.Msg, early *earlyHardeningE }).Flag(&flagShort, "short", command.BoolFlag(false), "Print instance id") } - c.Command("version", "Display version information", func(args []string) error { - fmt.Println(internal.Version()) - return errSuccess - }) - - c.Command("license", "Show full license text", func(args []string) error { - fmt.Println(license) - return errSuccess - }) - - c.Command("template", "Produce a config template", func(args []string) error { - printJSON(os.Stdout, false, hst.Template()) - return errSuccess - }) - - c.Command("help", "Show this help message", func([]string) error { - c.PrintHelp() - return errSuccess - }) + c.Command("version", "Display version information", func(args []string) error { fmt.Println(internal.Version()); return errSuccess }) + c.Command("license", "Show full license text", func(args []string) error { fmt.Println(license); return errSuccess }) + c.Command("template", "Produce a config template", func(args []string) error { printJSON(os.Stdout, false, hst.Template()); return errSuccess }) + c.Command("help", "Show this help message", func([]string) error { c.PrintHelp(); return errSuccess }) return c } diff --git a/internal/app/paths.go b/internal/app/env.go similarity index 100% rename from internal/app/paths.go rename to internal/app/env.go diff --git a/internal/app/paths_test.go b/internal/app/env_test.go similarity index 100% rename from internal/app/paths_test.go rename to internal/app/env_test.go diff --git a/internal/app/finalise.go b/internal/app/finalise.go index a33bcc9..d245942 100644 --- a/internal/app/finalise.go +++ b/internal/app/finalise.go @@ -26,6 +26,17 @@ import ( "hakurei.app/system/wayland" ) +func newInt(v int) *stringPair[int] { return &stringPair[int]{v, strconv.Itoa(v)} } + +// stringPair stores a value and its string representation. +type stringPair[T comparable] struct { + v T + s string +} + +func (s *stringPair[T]) unwrap() T { return s.v } +func (s *stringPair[T]) String() string { return s.s } + func newWithMessage(msg string) error { return newWithMessageError(msg, os.ErrInvalid) } func newWithMessageError(msg string, err error) error { return &hst.AppError{Step: "finalise", Err: err, Msg: msg} diff --git a/internal/app/path.go b/internal/app/path.go index 56e373d..493dfe3 100644 --- a/internal/app/path.go +++ b/internal/app/path.go @@ -6,6 +6,10 @@ import ( ) func deepContainsH(basepath, targpath string) (bool, error) { + const upper = ".." + string(filepath.Separator) + rel, err := filepath.Rel(basepath, targpath) - return err == nil && rel != ".." && !strings.HasPrefix(rel, string([]byte{'.', '.', filepath.Separator})), err + return err == nil && + rel != ".." && + !strings.HasPrefix(rel, upper), err } diff --git a/internal/app/strings.go b/internal/app/strings.go deleted file mode 100644 index a7fdcd4..0000000 --- a/internal/app/strings.go +++ /dev/null @@ -1,16 +0,0 @@ -package app - -import ( - "strconv" -) - -func newInt(v int) *stringPair[int] { return &stringPair[int]{v, strconv.Itoa(v)} } - -// stringPair stores a value and its string representation. -type stringPair[T comparable] struct { - v T - s string -} - -func (s *stringPair[T]) unwrap() T { return s.v } -func (s *stringPair[T]) String() string { return s.s }