tonarchy

tonarchy

https://git.tonybtw.com/tonarchy.git git://git.tonybtw.com/tonarchy.git
1,431 bytes raw
1
#ifndef BUILD_ISO_H
2
#define BUILD_ISO_H
3
4
#define _GNU_SOURCE
5
6
#include <stdio.h>
7
#include <stdlib.h>
8
#include <string.h>
9
#include <unistd.h>
10
#include <sys/stat.h>
11
#include <sys/types.h>
12
#include <time.h>
13
#include <stdbool.h>
14
15
#define PATH_MAX_LEN 1024
16
#define CMD_MAX_LEN 4096
17
18
typedef enum {
19
    CONTAINER_NONE,
20
    CONTAINER_PODMAN,
21
    CONTAINER_DISTROBOX
22
} Container_Type;
23
24
typedef struct {
25
    char tonarchy_src[PATH_MAX_LEN];
26
    char iso_profile[PATH_MAX_LEN];
27
    char out_dir[PATH_MAX_LEN];
28
    char work_dir[PATH_MAX_LEN];
29
    char distrobox_name[128];
30
    Container_Type container_type;
31
    bool use_container;
32
} Build_Config;
33
34
void logger_init(const char *log_path);
35
void logger_close(void);
36
37
void log_info(const char *fmt, ...);
38
void log_error(const char *fmt, ...);
39
void log_warn(const char *fmt, ...);
40
41
int run_command(const char *cmd);
42
int run_command_in_container(const char *cmd, const Build_Config *config);
43
int create_directory(const char *path, mode_t mode);
44
45
int build_tonarchy_static(const Build_Config *config);
46
int clean_airootfs(const Build_Config *config);
47
int clean_work_dir(const Build_Config *config);
48
int prepare_airootfs(const Build_Config *config);
49
int run_mkarchiso(const Build_Config *config);
50
int run_mkarchiso_in_container(const Build_Config *config);
51
52
const char *find_latest_iso(const char *out_dir);
53
54
int detect_container_runtime(void);
55
int check_distrobox_exists(const char *name);
56
57
#endif