chiark / gitweb /
allow logging of all output from executed tools
[elogind.git] / extras / run_directory / run_directory.c
index e6c6173ecab6a3a5fdc0678ba8d807d4be9b4e0e..5107f85aefa1771e2ab68232300bb671cde99564 100644 (file)
 #include "../../udev_utils.h"
 #include "../../list.h"
 #include "../../logging.h"
+#include "run_directory.h"
 
-int run_directory(const char *dir, const char *suffix, const char *subsystem);
-
-static int run_program(const char *filename, const char *subsystem)
+static int exec_program(const char *filename, const char *subsystem)
 {
        pid_t pid;
 
@@ -53,24 +52,14 @@ static int run_program(const char *filename, const char *subsystem)
 
 int run_directory(const char *dir, const char *suffix, const char *subsystem)
 {
-       char dirname[NAME_SIZE];
        struct name_entry *name_loop, *name_tmp;
        LIST_HEAD(name_list);
 
-       if (subsystem) {
-               snprintf(dirname, sizeof(dirname), "%s/%s", dir, subsystem);
-               dirname[sizeof(dirname)-1] = '\0';
-               dbg("looking at '%s'", dirname);
-               add_matching_files(&name_list, dirname, suffix);
-       }
-
-       snprintf(dirname, sizeof(dirname), "%s/default", dir);
-       dirname[sizeof(dirname)-1] = '\0';
-       dbg("looking at '%s'", dirname);
-       add_matching_files(&name_list, dirname, suffix);
+       dbg("looking at '%s'", dir);
+       add_matching_files(&name_list, dir, suffix);
 
        list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) {
-               run_program(name_loop->name, subsystem);
+               exec_program(name_loop->name, subsystem);
                list_del(&name_loop->node);
        }