diff options
| author | Ronny Chevalier <chevalier.ronny@gmail.com> | 2016-03-02 22:06:47 +0100 | 
|---|---|---|
| committer | Ronny Chevalier <chevalier.ronny@gmail.com> | 2016-03-02 22:06:47 +0100 | 
| commit | 5f18271ec100b3035bb65c17d08f04f0d94022d6 (patch) | |
| tree | 693de556d1b38080ca7c1ccf24ceab73fbc9dbb6 | |
| parent | 77f911c56bcfe2eccf15d9fa77bdd306a0359879 (diff) | |
systemctl: rm empty dropin dirs after cancelled edit
Fixes #2734
| -rw-r--r-- | src/systemctl/systemctl.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 11e26ce737..c741baf58a 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -6162,9 +6162,19 @@ static int edit(int argc, char *argv[], void *userdata) {                  r = daemon_reload(argc, argv, userdata);  end: -        STRV_FOREACH_PAIR(original, tmp, paths) +        STRV_FOREACH_PAIR(original, tmp, paths) {                  (void) unlink(*tmp); +                /* Removing empty dropin dirs */ +                if (!arg_full) { +                        _cleanup_free_ char *dir = dirname_malloc(*original); +                        /* no need to check if the dir is empty, rmdir +                         * does nothing if it is not the case. +                         */ +                        (void) rmdir(dir); +                } +        } +          return r;  } | 
