]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
binfmt: define main through macro
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 20 Nov 2018 09:04:35 +0000 (10:04 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 20 Nov 2018 15:48:21 +0000 (16:48 +0100)
src/binfmt/binfmt.c

index 09f1bb39689051abf72ae58832370b62cb55cbfa..b6f53a9bb893bfcc475489fbdcb8e057459ac12a 100644 (file)
@@ -14,6 +14,7 @@
 #include "fd-util.h"
 #include "fileio.h"
 #include "log.h"
+#include "main-func.h"
 #include "pager.h"
 #include "path-util.h"
 #include "string-util.h"
@@ -125,7 +126,6 @@ static int help(void) {
 }
 
 static int parse_argv(int argc, char *argv[]) {
-
         enum {
                 ARG_VERSION = 0x100,
                 ARG_CAT_CONFIG,
@@ -178,7 +178,7 @@ static int parse_argv(int argc, char *argv[]) {
         return 1;
 }
 
-int main(int argc, char *argv[]) {
+static int run(int argc, char *argv[]) {
         int r, k;
 
         r = parse_argv(argc, argv);
@@ -204,16 +204,13 @@ int main(int argc, char *argv[]) {
                 char **f;
 
                 r = conf_files_list_strv(&files, ".conf", NULL, 0, (const char**) CONF_PATHS_STRV("binfmt.d"));
-                if (r < 0) {
-                        log_error_errno(r, "Failed to enumerate binfmt.d files: %m");
-                        goto finish;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to enumerate binfmt.d files: %m");
 
                 if (arg_cat_config) {
                         (void) pager_open(arg_pager_flags);
 
-                        r = cat_files(NULL, files, 0);
-                        goto finish;
+                        return cat_files(NULL, files, 0);
                 }
 
                 /* Flush out all rules */
@@ -226,8 +223,7 @@ int main(int argc, char *argv[]) {
                 }
         }
 
-finish:
-        pager_close();
-
-        return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+        return r;
 }
+
+DEFINE_MAIN_FUNCTION(run);