hibernate-resume-generator: use static destructor and DEFINE_MAIN_FUNCTION() macro

This commit is contained in:
Yu Watanabe 2018-11-20 18:00:13 +09:00 committed by Zbigniew Jędrzejewski-Szmek
parent a4ef3e4dbb
commit 77182cc65e
1 changed files with 10 additions and 11 deletions

View File

@ -7,6 +7,7 @@
#include "fstab-util.h"
#include "generator.h"
#include "log.h"
#include "main-func.h"
#include "mkdir.h"
#include "proc-cmdline.h"
#include "special.h"
@ -18,6 +19,8 @@ static const char *arg_dest = "/tmp";
static char *arg_resume_device = NULL;
static bool arg_noresume = false;
STATIC_DESTRUCTOR_REGISTER(arg_resume_device, freep);
static int parse_proc_cmdline_item(const char *key, const char *value, void *data) {
if (streq(key, "resume")) {
@ -66,7 +69,7 @@ static int process_resume(void) {
return 0;
}
int main(int argc, char *argv[]) {
static int run(int argc, char *argv[]) {
int r = 0;
log_setup_generator();
@ -75,7 +78,7 @@ int main(int argc, char *argv[]) {
if (argc > 1 && argc != 4) {
log_error("This program takes three or no arguments.");
return EXIT_FAILURE;
return -EINVAL;
}
if (argc > 1)
@ -84,7 +87,7 @@ int main(int argc, char *argv[]) {
/* Don't even consider resuming outside of initramfs. */
if (!in_initrd()) {
log_debug("Not running in an initrd, quitting.");
return EXIT_SUCCESS;
return 0;
}
r = proc_cmdline_parse(parse_proc_cmdline_item, NULL, 0);
@ -93,14 +96,10 @@ int main(int argc, char *argv[]) {
if (arg_noresume) {
log_notice("Found \"noresume\" on the kernel command line, quitting.");
r = 0;
goto finish;
return 0;
}
r = process_resume();
finish:
free(arg_resume_device);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
return process_resume();
}
DEFINE_MAIN_FUNCTION(run);