| /* SPDX-License-Identifier: LGPL-2.1-or-later */ | |
| #pragma once | |
| #include <stdio.h> | |
| #include "main-func.h" | |
| int generator_open_unit_file( | |
| const char *dest, | |
| const char *source, | |
| const char *name, | |
| FILE **file); | |
| int generator_add_symlink(const char *dir, const char *dst, const char *dep_type, const char *src); | |
| int generator_write_fsck_deps( | |
| FILE *f, | |
| const char *dir, | |
| const char *what, | |
| const char *where, | |
| const char *type); | |
| int generator_write_timeouts( | |
| const char *dir, | |
| const char *what, | |
| const char *where, | |
| const char *opts, | |
| char **filtered); | |
| int generator_write_blockdev_dependency( | |
| FILE *f, | |
| const char *what); | |
| int generator_write_cryptsetup_unit_section( | |
| FILE *f, | |
| const char *source); | |
| int generator_write_cryptsetup_service_section( | |
| FILE *f, | |
| const char *name, | |
| const char *what, | |
| const char *password, | |
| const char *options); | |
| int generator_write_veritysetup_unit_section( | |
| FILE *f, | |
| const char *source); | |
| int generator_write_veritysetup_service_section( | |
| FILE *f, | |
| const char *name, | |
| const char *data_what, | |
| const char *hash_what, | |
| const char *roothash, | |
| const char *options); | |
| int generator_write_device_deps( | |
| const char *dir, | |
| const char *what, | |
| const char *where, | |
| const char *opts); | |
| int generator_write_initrd_root_device_deps( | |
| const char *dir, | |
| const char *what); | |
| int generator_hook_up_mkswap( | |
| const char *dir, | |
| const char *what); | |
| int generator_hook_up_mkfs( | |
| const char *dir, | |
| const char *what, | |
| const char *where, | |
| const char *type); | |
| int generator_hook_up_growfs( | |
| const char *dir, | |
| const char *where, | |
| const char *target); | |
| int generator_enable_remount_fs_service(const char *dir); | |
| void log_setup_generator(void); | |
| /* Similar to DEFINE_MAIN_FUNCTION, but initializes logging and assigns positional arguments. */ | |
| #define DEFINE_MAIN_GENERATOR_FUNCTION(impl) \ | |
| _DEFINE_MAIN_FUNCTION( \ | |
| ({ \ | |
| log_setup_generator(); \ | |
| if (argc > 1 && argc != 4) \ | |
| return log_error_errno(SYNTHETIC_ERRNO(EINVAL), \ | |
| "This program takes zero or three arguments."); \ | |
| }), \ | |
| impl(argc > 1 ? argv[1] : "/tmp", \ | |
| argc > 1 ? argv[2] : "/tmp", \ | |
| argc > 1 ? argv[3] : "/tmp"), \ | |
| r < 0 ? EXIT_FAILURE : EXIT_SUCCESS) |