diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-02-14 01:07:01 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-02-14 01:07:01 +0100 |
commit | c85dc17be718014260e10e41d15ba8f7329fed26 (patch) | |
tree | 7a6a41ca48f4bb0a6e073ad1dce0b09acac61f7d | |
parent | a6a80b4f440bcc1c6087572503c08a72ee674075 (diff) |
util: unify code to check whether certain file names should be ignored when listing files
-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)) \ |