From bdb3ed7950508fb5f3d9f1d518c4e6e41cecf15e Mon Sep 17 00:00:00 2001 From: Petr Lautrbach Date: Fri, 5 May 2023 19:23:04 +0200 Subject: [PATCH] Fix preference of user quadlets directories If there's a container defined in multiple directories use the following precedence: $XDG_CONFIG_HOME/containers/systemd/ or ~/.config/containers/systemd/ takes precedence over /etc/containers/systemd/users/$(UID) and this takes precedence over /etc/containers/systemd/users/ Signed-off-by: Petr Lautrbach --- cmd/quadlet/main.go | 8 ++++---- cmd/quadlet/main_test.go | 2 +- docs/source/markdown/podman-systemd.unit.5.md | 5 ++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/cmd/quadlet/main.go b/cmd/quadlet/main.go index bdee9eebab..1c81a04f84 100644 --- a/cmd/quadlet/main.go +++ b/cmd/quadlet/main.go @@ -115,13 +115,13 @@ func getUnitDirs(rootless bool) []string { return nil } dirs = append(dirs, path.Join(configDir, "containers/systemd")) - dirs = append(dirs, filepath.Join(quadlet.UnitDirAdmin, "users")) u, err := user.Current() - if err != nil { + if err == nil { + dirs = append(dirs, filepath.Join(quadlet.UnitDirAdmin, "users", u.Uid)) + } else { fmt.Fprintf(os.Stderr, "Warning: %v", err) - return dirs } - return append(dirs, filepath.Join(quadlet.UnitDirAdmin, "users", u.Uid)) + return append(dirs, filepath.Join(quadlet.UnitDirAdmin, "users")) } dirs = append(dirs, quadlet.UnitDirAdmin) return append(dirs, quadlet.UnitDirDistro) diff --git a/cmd/quadlet/main_test.go b/cmd/quadlet/main_test.go index 3ff1e960f1..709b252d17 100644 --- a/cmd/quadlet/main_test.go +++ b/cmd/quadlet/main_test.go @@ -61,8 +61,8 @@ func TestUnitDirs(t *testing.T) { rootlessDirs := []string{ path.Join(configDir, "containers/systemd"), - filepath.Join(quadlet.UnitDirAdmin, "users"), filepath.Join(quadlet.UnitDirAdmin, "users", u.Uid), + filepath.Join(quadlet.UnitDirAdmin, "users"), } unitDirs = getUnitDirs(true) diff --git a/docs/source/markdown/podman-systemd.unit.5.md b/docs/source/markdown/podman-systemd.unit.5.md index 22e773835f..945ae5d773 100644 --- a/docs/source/markdown/podman-systemd.unit.5.md +++ b/docs/source/markdown/podman-systemd.unit.5.md @@ -15,10 +15,9 @@ podman\-systemd.unit - systemd units using Podman Quadlet ### Podman user unit search path - * /etc/containers/systemd/users/ + * $XDG_CONFIG_HOME/containers/systemd/ or ~/.config/containers/systemd/ * /etc/containers/systemd/users/$(UID) - * $XDG_CONFIG_HOME/containers/systemd/ - * ~/.config/containers/systemd/ + * /etc/containers/systemd/users/ ## DESCRIPTION