All checks were successful
Test / Create distribution (push) Successful in 34s
Test / Hpkg (push) Successful in 4m3s
Test / Sandbox (race detector) (push) Successful in 4m26s
Test / Hakurei (race detector) (push) Successful in 5m19s
Test / Sandbox (push) Successful in 1m28s
Test / Hakurei (push) Successful in 2m16s
Test / Flake checks (push) Successful in 1m37s
This allows use of absolute pathname values without importing container. Signed-off-by: Ophestra <cat@gensokyo.uk>
34 lines
955 B
Go
34 lines
955 B
Go
package internal
|
|
|
|
import (
|
|
"log"
|
|
|
|
"hakurei.app/container/check"
|
|
)
|
|
|
|
var (
|
|
hmain = compPoison
|
|
hsu = compPoison
|
|
)
|
|
|
|
// MustHakureiPath returns the absolute path to hakurei, configured at compile time.
|
|
func MustHakureiPath() *check.Absolute { return mustCheckPath(log.Fatal, "hakurei", hmain) }
|
|
|
|
// MustHsuPath returns the absolute path to hakurei, configured at compile time.
|
|
func MustHsuPath() *check.Absolute { return mustCheckPath(log.Fatal, "hsu", hsu) }
|
|
|
|
// mustCheckPath checks a pathname against compPoison, then [container.NewAbs], calling fatal if either step fails.
|
|
func mustCheckPath(fatal func(v ...any), name, pathname string) *check.Absolute {
|
|
if pathname != compPoison && pathname != "" {
|
|
if a, err := check.NewAbs(pathname); err != nil {
|
|
fatal(err.Error())
|
|
return nil // unreachable
|
|
} else {
|
|
return a
|
|
}
|
|
} else {
|
|
fatal("invalid " + name + " path, this program is compiled incorrectly")
|
|
return nil // unreachable
|
|
}
|
|
}
|