aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/outcome/spaccount.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-06-19 23:41:36 +0900
committerOphestra <cat@gensokyo.uk>2026-06-20 00:16:35 +0900
commitcb618093d5a2156e6c5a03eaf8ca7d370bf33740 (patch)
tree7bf8488b7dc0c81f75c6bd96f2da5b1dca9241c2 /internal/outcome/spaccount.go
parentb0b2471c0cd783c670ed7531d5512415259f551d (diff)
hst: optionally disable file placement
This works around stubborn package managers. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/outcome/spaccount.go')
-rw-r--r--internal/outcome/spaccount.go23
1 files changed, 13 insertions, 10 deletions
diff --git a/internal/outcome/spaccount.go b/internal/outcome/spaccount.go
index 1a849cb5..ccc64479 100644
--- a/internal/outcome/spaccount.go
+++ b/internal/outcome/spaccount.go
@@ -6,6 +6,7 @@ import (
"syscall"
"hakurei.app/fhs"
+ "hakurei.app/hst"
"hakurei.app/internal/validate"
)
@@ -41,16 +42,18 @@ func (s spAccountOp) toContainer(state *outcomeStateParams) error {
state.env["USER"] = username
state.env["SHELL"] = state.Container.Shell.String()
- state.params.
- Place(fhs.AbsEtc.Append("passwd"),
- []byte(username+":x:"+
- state.mapuid.String()+":"+
- state.mapgid.String()+
- ":Hakurei:"+
- state.Container.Home.String()+":"+
- state.Container.Shell.String()+"\n")).
- Place(fhs.AbsEtc.Append("group"),
- []byte("hakurei:x:"+state.mapgid.String()+":\n"))
+ if state.Container.Flags&hst.FNoPlace == 0 {
+ state.params.
+ Place(fhs.AbsEtc.Append("passwd"),
+ []byte(username+":x:"+
+ state.mapuid.String()+":"+
+ state.mapgid.String()+
+ ":Hakurei:"+
+ state.Container.Home.String()+":"+
+ state.Container.Shell.String()+"\n")).
+ Place(fhs.AbsEtc.Append("group"),
+ []byte("hakurei:x:"+state.mapgid.String()+":\n"))
+ }
return nil
}