Move generic specifier functions to shared

No functional change. This makes it possible to use them in install.c.
parent d9e5e694
......@@ -211,42 +211,6 @@ static char *specifier_user_shell(char specifier, void *data, void *userdata) {
return strdup(shell);
}
static char *specifier_machine_id(char specifier, void *data, void *userdata) {
sd_id128_t id;
char *buf;
int r;
r = sd_id128_get_machine(&id);
if (r < 0)
return NULL;
buf = new(char, 33);
if (!buf)
return NULL;
return sd_id128_to_string(id, buf);
}
static char *specifier_boot_id(char specifier, void *data, void *userdata) {
sd_id128_t id;
char *buf;
int r;
r = sd_id128_get_boot(&id);
if (r < 0)
return NULL;
buf = new(char, 33);
if (!buf)
return NULL;
return sd_id128_to_string(id, buf);
}
static char *specifier_host_name(char specifier, void *data, void *userdata) {
return gethostname_malloc();
}
char *unit_name_printf(Unit *u, const char* format) {
/*
......
......@@ -109,3 +109,39 @@ char *specifier_printf(const char *text, const Specifier table[], void *userdata
char* specifier_string(char specifier, void *data, void *userdata) {
return strdup(strempty(data));
}
char *specifier_machine_id(char specifier, void *data, void *userdata) {
sd_id128_t id;
char *buf;
int r;
r = sd_id128_get_machine(&id);
if (r < 0)
return NULL;
buf = new(char, 33);
if (!buf)
return NULL;
return sd_id128_to_string(id, buf);
}
char *specifier_boot_id(char specifier, void *data, void *userdata) {
sd_id128_t id;
char *buf;
int r;
r = sd_id128_get_boot(&id);
if (r < 0)
return NULL;
buf = new(char, 33);
if (!buf)
return NULL;
return sd_id128_to_string(id, buf);
}
char *specifier_host_name(char specifier, void *data, void *userdata) {
return gethostname_malloc();
}
......@@ -31,4 +31,8 @@ typedef struct Specifier {
char *specifier_printf(const char *text, const Specifier table[], void *userdata);
char* specifier_string(char specifier, void *data, void *userdata);
char *specifier_string(char specifier, void *data, void *userdata);
char *specifier_machine_id(char specifier, void *data, void *userdata);
char *specifier_boot_id(char specifier, void *data, void *userdata);
char *specifier_host_name(char specifier, void *data, void *userdata);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment