diff options
-rw-r--r-- | load-dropin.c | 6 | ||||
-rw-r--r-- | util.c | 14 | ||||
-rw-r--r-- | util.h | 2 |
3 files changed, 17 insertions, 5 deletions
diff --git a/load-dropin.c b/load-dropin.c index af95d37a03..a3c9d3c77d 100644 --- a/load-dropin.c +++ b/load-dropin.c @@ -60,12 +60,8 @@ int unit_load_dropin(Unit *u) { free(path); while ((de = readdir(d))) { - if (de->d_name[0] == '.') - continue; - - assert(de->d_name[0]); - if (de->d_name[strlen(de->d_name)-1] == '~') + if (ignore_file(de->d_name)) continue; if (asprintf(&path, "%s/%s.wants/%s", *p, t, de->d_name) < 0) { @@ -1058,6 +1058,20 @@ char *ascii_strlower(char *path) { return p; } +bool ignore_file(const char *filename) { + assert(filename); + + return + filename[0] == '.' || + endswith(filename, "~") || + endswith(filename, ".rpmnew") || + endswith(filename, ".rpmsave") || + endswith(filename, ".rpmorig") || + endswith(filename, ".dpkg-old") || + endswith(filename, ".dpkg-new") || + endswith(filename, ".swp"); +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime", @@ -151,6 +151,8 @@ char *xescape(const char *s, const char *bad); char *bus_path_escape(const char *s); char *bus_path_unescape(const char *s); +bool ignore_file(const char *filename); + #define DEFINE_STRING_TABLE_LOOKUP(name,type) \ const char *name##_to_string(type i) { \ if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \ |