internal: clean up build strings
All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m5s
Test / Hpkg (push) Successful in 4m4s
Test / Sandbox (race detector) (push) Successful in 4m9s
Test / Hakurei (race detector) (push) Successful in 4m46s
Test / Flake checks (push) Successful in 1m30s
All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 2m9s
Test / Hakurei (push) Successful in 3m5s
Test / Hpkg (push) Successful in 4m4s
Test / Sandbox (race detector) (push) Successful in 4m9s
Test / Hakurei (race detector) (push) Successful in 4m46s
Test / Flake checks (push) Successful in 1m30s
These names are less ambiguous and should be understandable without reading the source code. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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", ""},
|
||||
|
||||
19
internal/version.go
Normal file
19
internal/version.go
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user