summaryrefslogtreecommitdiff
path: root/src/shared/condition.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-05-14 10:11:56 +0200
committerLennart Poettering <lennart@poettering.net>2020-05-18 20:20:50 +0200
commit814872e925ed79c70a13fdf9a9ca7eb30e551110 (patch)
tree0090b433405ab5e29d490c3d25ca7dedd8d4e00d /src/shared/condition.c
parent5439d8212c97d7dd8af48f9b52146710ecda4767 (diff)
downloadsystemd-814872e925ed79c70a13fdf9a9ca7eb30e551110.tar.gz
condition: introduce systemd.condition-first-boot= kernel command line switch
Much like systemd.condition-needs-update= this new switch allows overriding of a unit file condition, but this time its ConditionFirstBoot=. Usecase is also primarily debugging, but could be useful for other schemes too.
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r--src/shared/condition.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shared/condition.c b/src/shared/condition.c
index b17403855a..bf3b5fa162 100644
--- a/src/shared/condition.c
+++ b/src/shared/condition.c
@@ -627,11 +627,18 @@ static int condition_test_needs_update(Condition *c, char **env) {
static int condition_test_first_boot(Condition *c, char **env) {
int r, q;
+ bool b;
assert(c);
assert(c->parameter);
assert(c->type == CONDITION_FIRST_BOOT);
+ r = proc_cmdline_get_bool("systemd.condition-first-boot", &b);
+ if (r < 0)
+ log_debug_errno(r, "Failed to parse systemd.condition-first-boot= kernel command line argument, ignoring: %m");
+ if (r > 0)
+ return b == !!r;
+
r = parse_boolean(c->parameter);
if (r < 0)
return r;