From 766dd89ffa198a315b043230f904636461c41efe Mon Sep 17 00:00:00 2001 From: Ophestra Date: Tue, 21 Oct 2025 01:49:36 +0900 Subject: internal: clean up build strings These names are less ambiguous and should be understandable without reading the source code. Signed-off-by: Ophestra --- internal/comp.go | 17 ----------------- internal/path.go | 20 ++++++++++---------- internal/path_test.go | 1 - internal/version.go | 19 +++++++++++++++++++ 4 files changed, 29 insertions(+), 28 deletions(-) delete mode 100644 internal/comp.go create mode 100644 internal/version.go (limited to 'internal') diff --git a/internal/comp.go b/internal/comp.go deleted file mode 100644 index 28ee6224..00000000 --- a/internal/comp.go +++ /dev/null @@ -1,17 +0,0 @@ -package internal - -const compPoison = "INVALIDINVALIDINVALIDINVALIDINVALID" - -var ( - version = compPoison -) - -// checkComp validates string value set at compile time. -func checkComp(s string) (string, bool) { return s, s != compPoison && s != "" } - -func Version() string { - if v, ok := checkComp(version); ok { - return v - } - return "impure" -} diff --git a/internal/path.go b/internal/path.go index 888689f5..85e93eaf 100644 --- a/internal/path.go +++ b/internal/path.go @@ -6,20 +6,20 @@ import ( "hakurei.app/container/check" ) -var ( - hmain = compPoison - hsu = compPoison -) +// Absolute paths to the Hakurei installation. +// +// These are set by the linker. +var hakureiPath, hsuPath string -// MustHakureiPath returns the absolute path to hakurei, configured at compile time. -func MustHakureiPath() *check.Absolute { return mustCheckPath(log.Fatal, "hakurei", hmain) } +// MustHakureiPath returns the [check.Absolute] path to hakurei. +func MustHakureiPath() *check.Absolute { return mustCheckPath(log.Fatal, "hakurei", hakureiPath) } -// MustHsuPath returns the absolute path to hakurei, configured at compile time. -func MustHsuPath() *check.Absolute { return mustCheckPath(log.Fatal, "hsu", hsu) } +// MustHsuPath returns the [check.Absolute] to hsu. +func MustHsuPath() *check.Absolute { return mustCheckPath(log.Fatal, "hsu", hsuPath) } -// mustCheckPath checks a pathname against compPoison, then [container.NewAbs], calling fatal if either step fails. +// mustCheckPath checks a pathname to not be zero, then [check.NewAbs], calling fatal if either step fails. func mustCheckPath(fatal func(v ...any), name, pathname string) *check.Absolute { - if pathname != compPoison && pathname != "" { + if pathname != "" { if a, err := check.NewAbs(pathname); err != nil { fatal(err.Error()) return nil // unreachable diff --git a/internal/path_test.go b/internal/path_test.go index 5bcdd851..f670c786 100644 --- a/internal/path_test.go +++ b/internal/path_test.go @@ -15,7 +15,6 @@ func TestMustCheckPath(t *testing.T) { pathname string wantFatal string }{ - {"poison", compPoison, "invalid test path, this program is compiled incorrectly"}, {"zero", "", "invalid test path, this program is compiled incorrectly"}, {"not absolute", "\x00", `path "\x00" is not absolute`}, {"success", "/proc/nonexistent", ""}, diff --git a/internal/version.go b/internal/version.go new file mode 100644 index 00000000..5c671084 --- /dev/null +++ b/internal/version.go @@ -0,0 +1,19 @@ +package internal + +// FallbackVersion is returned when a version string was not set by the linker. +const FallbackVersion = "dirty" + +// buildVersion is the Hakurei tree's version string at build time. +// +// This is set by the linker. +var buildVersion string + +// Version returns the Hakurei tree's version string. +// It is either the value of the constant [FallbackVersion] or, +// when possible, a release tag like "v1.0.0". +func Version() string { + if buildVersion != "" { + return buildVersion + } + return FallbackVersion +} -- cgit v1.3.1