chiark / gitweb /
unit: printf specifiers %u and %h: $USER and $HOME.
authorAuke Kok <auke-jan.h.kok@intel.com>
Sat, 14 Jul 2012 05:28:43 +0000 (22:28 -0700)
committerLennart Poettering <lennart@poettering.net>
Mon, 16 Jul 2012 10:25:25 +0000 (12:25 +0200)
commitb2896c905bef7be7ed9a760d9d61aa6ad0f614a3
tree618cd1bb963e9a1904452a4db4d0063d2a5ff8e7
parent7c5f152acafcf0964db2f3a111195b3b2f36176f
unit: printf specifiers %u and %h: $USER and $HOME.

These printf specifiers allow us to refer to $HOME and $USER
in unit files. These are particularly helpful in instanced
units that have "User=" set, and in systemd --user domains.

The specifiers will return the pw_name and pw_dir fields
if the unit file has a User= field.

If the unit file does not have a User= field, the value
substituted is either $USER or $HOME from the environment,
or, if unset, the values from pw_name or pw_dir.

This patch is somewhat after Ran Benita's original patch,
which didn't get merged. I've split up the 2 specifiers
and extended them to do what is logically expected from
these specifiers.

Note that expansion is done at `start` time, not after
the units are parsed. Using `systemctl show` will just
show the specifiers.
man/systemd.unit.xml
src/core/unit.c