core: add %v specifier
This commit is contained in:
@@ -108,6 +108,7 @@ char *install_full_printf(InstallInfo *i, const char *format) {
|
||||
* %m the machine ID of the running system
|
||||
* %H the host name of the running system
|
||||
* %b the boot ID of the running system
|
||||
* %v `uname -r` of the running system
|
||||
*/
|
||||
|
||||
const Specifier table[] = {
|
||||
@@ -122,7 +123,8 @@ char *install_full_printf(InstallInfo *i, const char *format) {
|
||||
{ 'm', specifier_machine_id, NULL },
|
||||
{ 'H', specifier_host_name, NULL },
|
||||
{ 'b', specifier_boot_id, NULL },
|
||||
{ 0, NULL, NULL }
|
||||
{ 'v', specifier_kernel_release, NULL },
|
||||
{}
|
||||
};
|
||||
|
||||
assert(i);
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
***/
|
||||
|
||||
#include <string.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#include "macro.h"
|
||||
#include "util.h"
|
||||
@@ -145,3 +146,14 @@ char *specifier_boot_id(char specifier, void *data, void *userdata) {
|
||||
char *specifier_host_name(char specifier, void *data, void *userdata) {
|
||||
return gethostname_malloc();
|
||||
}
|
||||
|
||||
char *specifier_kernel_release(char specifier, void *data, void *userdata) {
|
||||
struct utsname uts;
|
||||
int r;
|
||||
|
||||
r = uname(&uts);
|
||||
if (r < 0)
|
||||
return NULL;
|
||||
|
||||
return strdup(uts.release);
|
||||
}
|
||||
|
||||
@@ -36,3 +36,4 @@ 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);
|
||||
char *specifier_kernel_release(char specifier, void *data, void *userdata);
|
||||
|
||||
Reference in New Issue
Block a user