On Thu, Sep 25, 2014 at 03:26:45PM +0200, Lukas Nykryn wrote:
> +static int add_install_dependency(sd_bus *bus, char **args) {
> +        _cleanup_strv_free_ char **names = NULL;
> +        _cleanup_free_ char *target = NULL;
> +        const char *verb = args[0];
> +        UnitFileInstallDependency dep;
> +        int r = 0;
> +
> +        if (!args[1])
> +                return 0;
> +
> +        target = unit_name_mangle_with_suffix(args[1], MANGLE_NOGLOB, 
> ".target");
> +        if (!target)
> +                return log_oom();
> +
> +        r = mangle_names(args+2, &names);
> +        if (r < 0)
> +                return r;
> +
> +        if (streq(verb, "add-wants"))
> +                dep = UNIT_FILE_INSTALL_DEPENDENCY_WANTS;
> +        else if (streq(verb, "add-requires"))
> +                dep = UNIT_FILE_INSTALL_DEPENDENCY_REQUIRES;
> +        else
> +                assert_not_reached("Unknown verb");
> +
> +        if (!bus || avoid_bus()) {
> +                UnitFileChange *changes = NULL;
> +                unsigned n_changes = 0;
> +
> +                r = unit_file_add_install_dependency(arg_scope, arg_runtime, 
> arg_root, names, target, dep, arg_force, &changes, &n_changes);

I think this is missing some error reporting. When I run 'systmectl add-wants 
--root=/ ...'
it obviously fails with permission denied. But no indication is given, apart 
from a non-zero
return code. If I run it as root for a non-existent unit file, it doesn't say 
anything either.

When I run it over dbus, the error message for a non-existent unit is
"Failed to execute operation: No such file or directory". It would be nice to 
at least
include the unit name in the message.

Zbyszek
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to