diff --git a/unit.c b/unit.c index 40761209202..a5f4ac76767 100644 --- a/unit.c +++ b/unit.c @@ -836,6 +836,19 @@ int unit_add_dependency(Unit *u, UnitDependency d, Unit *other) { return 0; } +int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name) { + Unit *other; + int r; + + if ((r = manager_load_unit(u->meta.manager, name, &other)) < 0) + return r; + + if ((r = unit_add_dependency(u, d, other)) < 0) + return r; + + return 0; +} + const char *unit_path(void) { char *e; diff --git a/unit.h b/unit.h index a90baf022af..a29c50ed978 100644 --- a/unit.h +++ b/unit.h @@ -196,6 +196,7 @@ void unit_free(Unit *u); int unit_add_name(Unit *u, const char *name); int unit_add_dependency(Unit *u, UnitDependency d, Unit *other); +int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name); void unit_add_to_load_queue(Unit *u);