All checks were successful
Test / Create distribution (push) Successful in 56s
Test / Sandbox (push) Successful in 2m32s
Test / Hakurei (push) Successful in 3m36s
Test / Hpkg (push) Successful in 4m30s
Test / Hakurei (race detector) (push) Successful in 5m40s
Test / Sandbox (race detector) (push) Successful in 2m12s
Test / Flake checks (push) Successful in 1m32s
This change was missed while merging the rest of the logging changes. Signed-off-by: Ophestra <cat@gensokyo.uk>
35 lines
892 B
Go
35 lines
892 B
Go
package app
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
"hakurei.app/container"
|
|
"hakurei.app/hst"
|
|
)
|
|
|
|
// CopyPaths populates a [hst.Paths] struct.
|
|
func CopyPaths(v *hst.Paths, userid int) { copyPaths(direct{}, v, userid) }
|
|
|
|
// copyPaths populates a [hst.Paths] struct.
|
|
func copyPaths(k syscallDispatcher, v *hst.Paths, userid int) {
|
|
const xdgRuntimeDir = "XDG_RUNTIME_DIR"
|
|
|
|
if tempDir, err := container.NewAbs(k.tempdir()); err != nil {
|
|
k.fatalf("invalid TMPDIR: %v", err)
|
|
} else {
|
|
v.TempDir = tempDir
|
|
}
|
|
|
|
v.SharePath = v.TempDir.Append("hakurei." + strconv.Itoa(userid))
|
|
|
|
r, _ := k.lookupEnv(xdgRuntimeDir)
|
|
if a, err := container.NewAbs(r); err != nil {
|
|
// fall back to path in share since hakurei has no hard XDG dependency
|
|
v.RunDirPath = v.SharePath.Append("run")
|
|
v.RuntimePath = v.RunDirPath.Append("compat")
|
|
} else {
|
|
v.RuntimePath = a
|
|
v.RunDirPath = v.RuntimePath.Append("hakurei")
|
|
}
|
|
}
|