Move generic specifier functions to shared

No functional change. This makes it possible to use them in install.c.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-01-27 19:44:52 -05:00
parent d9e5e694ea
commit d848b9cbfa
3 changed files with 41 additions and 37 deletions

View file

@ -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) {
/*

View file

@ -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();
}

View file

@ -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);