]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
c2f1db8f | 2 | #pragma once |
9e2f7c11 | 3 | |
e82f30d1 LP |
4 | #include "string-util.h" |
5 | ||
303ee601 | 6 | typedef int (*SpecifierCallback)(char specifier, const void *data, const void *userdata, char **ret); |
9e2f7c11 LP |
7 | |
8 | typedef struct Specifier { | |
9 | const char specifier; | |
10 | const SpecifierCallback lookup; | |
303ee601 | 11 | const void *data; |
9e2f7c11 LP |
12 | } Specifier; |
13 | ||
303ee601 | 14 | int specifier_printf(const char *text, const Specifier table[], const void *userdata, char **ret); |
9e2f7c11 | 15 | |
303ee601 | 16 | int specifier_string(char specifier, const void *data, const void *userdata, char **ret); |
d848b9cb | 17 | |
303ee601 ZJS |
18 | int specifier_machine_id(char specifier, const void *data, const void *userdata, char **ret); |
19 | int specifier_boot_id(char specifier, const void *data, const void *userdata, char **ret); | |
20 | int specifier_host_name(char specifier, const void *data, const void *userdata, char **ret); | |
e97708fa | 21 | int specifier_short_host_name(char specifier, const void *data, const void *userdata, char **ret); |
303ee601 | 22 | int specifier_kernel_release(char specifier, const void *data, const void *userdata, char **ret); |
268f5a54 LP |
23 | int specifier_architecture(char specifier, const void *data, const void *userdata, char **ret); |
24 | int specifier_os_id(char specifier, const void *data, const void *userdata, char **ret); | |
25 | int specifier_os_version_id(char specifier, const void *data, const void *userdata, char **ret); | |
26 | int specifier_os_build_id(char specifier, const void *data, const void *userdata, char **ret); | |
27 | int specifier_os_variant_id(char specifier, const void *data, const void *userdata, char **ret); | |
e82f30d1 | 28 | |
303ee601 ZJS |
29 | int specifier_group_name(char specifier, const void *data, const void *userdata, char **ret); |
30 | int specifier_group_id(char specifier, const void *data, const void *userdata, char **ret); | |
31 | int specifier_user_name(char specifier, const void *data, const void *userdata, char **ret); | |
32 | int specifier_user_id(char specifier, const void *data, const void *userdata, char **ret); | |
33 | int specifier_user_home(char specifier, const void *data, const void *userdata, char **ret); | |
34 | int specifier_user_shell(char specifier, const void *data, const void *userdata, char **ret); | |
36444d22 | 35 | |
303ee601 ZJS |
36 | int specifier_tmp_dir(char specifier, const void *data, const void *userdata, char **ret); |
37 | int specifier_var_tmp_dir(char specifier, const void *data, const void *userdata, char **ret); | |
b294e594 | 38 | |
e82f30d1 LP |
39 | static inline char* specifier_escape(const char *string) { |
40 | return strreplace(string, "%", "%%"); | |
41 | } | |
42 | ||
43 | int specifier_escape_strv(char **l, char ***ret); |