]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/shared/specifier.h
Merge pull request #11827 from keszybz/pkgconfig-variables
[thirdparty/systemd.git] / src / shared / specifier.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
c2f1db8f 2#pragma once
9e2f7c11 3
e82f30d1
LP
4#include "string-util.h"
5
303ee601 6typedef int (*SpecifierCallback)(char specifier, const void *data, const void *userdata, char **ret);
9e2f7c11
LP
7
8typedef struct Specifier {
9 const char specifier;
10 const SpecifierCallback lookup;
303ee601 11 const void *data;
9e2f7c11
LP
12} Specifier;
13
303ee601 14int specifier_printf(const char *text, const Specifier table[], const void *userdata, char **ret);
9e2f7c11 15
303ee601 16int specifier_string(char specifier, const void *data, const void *userdata, char **ret);
d848b9cb 17
303ee601
ZJS
18int specifier_machine_id(char specifier, const void *data, const void *userdata, char **ret);
19int specifier_boot_id(char specifier, const void *data, const void *userdata, char **ret);
20int specifier_host_name(char specifier, const void *data, const void *userdata, char **ret);
21int specifier_kernel_release(char specifier, const void *data, const void *userdata, char **ret);
e82f30d1 22
303ee601
ZJS
23int specifier_group_name(char specifier, const void *data, const void *userdata, char **ret);
24int specifier_group_id(char specifier, const void *data, const void *userdata, char **ret);
25int specifier_user_name(char specifier, const void *data, const void *userdata, char **ret);
26int specifier_user_id(char specifier, const void *data, const void *userdata, char **ret);
27int specifier_user_home(char specifier, const void *data, const void *userdata, char **ret);
28int specifier_user_shell(char specifier, const void *data, const void *userdata, char **ret);
36444d22 29
303ee601
ZJS
30int specifier_tmp_dir(char specifier, const void *data, const void *userdata, char **ret);
31int specifier_var_tmp_dir(char specifier, const void *data, const void *userdata, char **ret);
b294e594 32
e82f30d1
LP
33static inline char* specifier_escape(const char *string) {
34 return strreplace(string, "%", "%%");
35}
36
37int specifier_escape_strv(char **l, char ***ret);