core: Introduce unit_is_filtered()

This commit is contained in:
Daan De Meyer
2024-08-14 14:18:40 +02:00
parent 14702b9c18
commit 6d2984d21b
3 changed files with 19 additions and 8 deletions
+16
View File
@@ -6470,6 +6470,22 @@ int unit_arm_timer(
return 0;
}
bool unit_is_filtered(Unit *u, char *const *states, char *const *patterns) {
assert(u);
if (!strv_isempty(states)) {
char *const *unit_states = STRV_MAKE(
unit_load_state_to_string(u->load_state),
unit_active_state_to_string(unit_active_state(u)),
unit_sub_state_to_string(u));
if (!strv_overlap(states, unit_states))
return true;
}
return !strv_isempty(patterns) && !strv_fnmatch_or_empty(patterns, u->id, FNM_NOESCAPE);
}
static int unit_get_nice(Unit *u) {
ExecContext *ec;