unit: add ConditionACPower=
This commit is contained in:
@@ -221,6 +221,16 @@ static bool test_host(const char *parameter) {
|
||||
return b;
|
||||
}
|
||||
|
||||
static bool test_ac_power(const char *parameter) {
|
||||
int r;
|
||||
|
||||
r = parse_boolean(parameter);
|
||||
if (r < 0)
|
||||
return true;
|
||||
|
||||
return (on_ac_power() != 0) == !!r;
|
||||
}
|
||||
|
||||
bool condition_test(Condition *c) {
|
||||
assert(c);
|
||||
|
||||
@@ -294,6 +304,9 @@ bool condition_test(Condition *c) {
|
||||
case CONDITION_HOST:
|
||||
return test_host(c->parameter) == !c->negate;
|
||||
|
||||
case CONDITION_AC_POWER:
|
||||
return test_ac_power(c->parameter) == !c->negate;
|
||||
|
||||
case CONDITION_NULL:
|
||||
return !c->negate;
|
||||
|
||||
@@ -364,6 +377,7 @@ static const char* const condition_type_table[_CONDITION_TYPE_MAX] = {
|
||||
[CONDITION_VIRTUALIZATION] = "ConditionVirtualization",
|
||||
[CONDITION_SECURITY] = "ConditionSecurity",
|
||||
[CONDITION_HOST] = "ConditionHost",
|
||||
[CONDITION_AC_POWER] = "ConditionACPower",
|
||||
[CONDITION_NULL] = "ConditionNull"
|
||||
};
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ typedef enum ConditionType {
|
||||
CONDITION_SECURITY,
|
||||
CONDITION_CAPABILITY,
|
||||
CONDITION_HOST,
|
||||
CONDITION_AC_POWER,
|
||||
CONDITION_NULL,
|
||||
_CONDITION_TYPE_MAX,
|
||||
_CONDITION_TYPE_INVALID = -1
|
||||
|
||||
@@ -137,6 +137,7 @@ Unit.ConditionVirtualization, config_parse_unit_condition_string, CONDITION_V
|
||||
Unit.ConditionSecurity, config_parse_unit_condition_string, CONDITION_SECURITY, 0
|
||||
Unit.ConditionCapability, config_parse_unit_condition_string, CONDITION_CAPABILITY, 0
|
||||
Unit.ConditionHost, config_parse_unit_condition_string, CONDITION_HOST, 0
|
||||
Unit.ConditionACPower, config_parse_unit_condition_string, CONDITION_AC_POWER, 0
|
||||
Unit.ConditionNull, config_parse_unit_condition_null, 0, 0
|
||||
m4_dnl
|
||||
Service.PIDFile, config_parse_unit_path_printf, 0, offsetof(Service, pid_file)
|
||||
|
||||
Reference in New Issue
Block a user