mirror of
https://github.com/systemd/systemd
synced 2024-10-04 23:31:09 +00:00
path-lookup: split out logic for mkdir/rmdir of generator dirs in their own functions
This commit is contained in:
parent
3959135139
commit
cd64fd5613
|
@ -2737,15 +2737,7 @@ static int manager_run_generators(Manager *m) {
|
|||
return 0;
|
||||
|
||||
found:
|
||||
r = mkdir_p_label(m->lookup_paths.generator, 0755);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
r = mkdir_p_label(m->lookup_paths.generator_early, 0755);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
r = mkdir_p_label(m->lookup_paths.generator_late, 0755);
|
||||
r = lookup_paths_mkdir_generator(&m->lookup_paths);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
|
@ -2759,10 +2751,7 @@ static int manager_run_generators(Manager *m) {
|
|||
execute_directories((const char* const*) paths, DEFAULT_TIMEOUT_USEC, (char**) argv);
|
||||
|
||||
finish:
|
||||
/* Trim empty dirs */
|
||||
(void) rmdir(m->lookup_paths.generator);
|
||||
(void) rmdir(m->lookup_paths.generator_early);
|
||||
(void) rmdir(m->lookup_paths.generator_late);
|
||||
lookup_paths_trim_generator(&m->lookup_paths);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "install.h"
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
#include "mkdir.h"
|
||||
#include "path-lookup.h"
|
||||
#include "path-util.h"
|
||||
#include "stat-util.h"
|
||||
|
@ -457,8 +458,7 @@ int lookup_paths_init(
|
|||
if (r < 0 && r != -EOPNOTSUPP && r != -ENXIO)
|
||||
return r;
|
||||
|
||||
/* First priority is whatever has been passed to us via env
|
||||
* vars */
|
||||
/* First priority is whatever has been passed to us via env vars */
|
||||
e = getenv("SYSTEMD_UNIT_PATH");
|
||||
if (e) {
|
||||
const char *k;
|
||||
|
@ -633,3 +633,36 @@ void lookup_paths_free(LookupPaths *p) {
|
|||
|
||||
p->root_dir = mfree(p->root_dir);
|
||||
}
|
||||
|
||||
int lookup_paths_mkdir_generator(LookupPaths *p) {
|
||||
int r, q;
|
||||
|
||||
assert(p);
|
||||
|
||||
r = mkdir_p_label(p->generator, 0755);
|
||||
|
||||
q = mkdir_p_label(p->generator_early, 0755);
|
||||
if (q < 0 && r >= 0)
|
||||
r = q;
|
||||
|
||||
q = mkdir_p_label(p->generator_late, 0755);
|
||||
if (q < 0 && r >= 0)
|
||||
r = q;
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void lookup_paths_trim_generator(LookupPaths *p) {
|
||||
assert(p);
|
||||
|
||||
/* Trim empty dirs */
|
||||
|
||||
if (p->generator)
|
||||
(void) rmdir(p->generator);
|
||||
|
||||
if (p->generator_early)
|
||||
(void) rmdir(p->generator_early);
|
||||
|
||||
if (p->generator_late)
|
||||
(void) rmdir(p->generator_late);
|
||||
}
|
||||
|
|
|
@ -52,5 +52,8 @@ char **generator_paths(UnitFileScope scope);
|
|||
|
||||
int lookup_paths_init(LookupPaths *p, UnitFileScope scope, const char *root_dir);
|
||||
|
||||
int lookup_paths_mkdir_generator(LookupPaths *p);
|
||||
void lookup_paths_trim_generator(LookupPaths *p);
|
||||
|
||||
void lookup_paths_free(LookupPaths *p);
|
||||
#define _cleanup_lookup_paths_free_ _cleanup_(lookup_paths_free)
|
||||
|
|
Loading…
Reference in a new issue