1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2
3 #include "analyze.h"
4 #include "analyze-cat-config.h"
5 #include "conf-files.h"
6 #include "def.h"
7 #include "nulstr-util.h"
8 #include "path-util.h"
9 #include "pretty-print.h"
10 #include "strv.h"
11
verb_cat_config(int argc,char * argv[],void * userdata)12 int verb_cat_config(int argc, char *argv[], void *userdata) {
13 char **list;
14 int r;
15
16 pager_open(arg_pager_flags);
17
18 list = strv_skip(argv, 1);
19 STRV_FOREACH(arg, list) {
20 const char *t = NULL;
21
22 if (arg != list)
23 print_separator();
24
25 if (path_is_absolute(*arg)) {
26 const char *dir;
27
28 NULSTR_FOREACH(dir, CONF_PATHS_NULSTR("")) {
29 t = path_startswith(*arg, dir);
30 if (t)
31 break;
32 }
33
34 if (!t)
35 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
36 "Path %s does not start with any known prefix.", *arg);
37 } else
38 t = *arg;
39
40 r = conf_files_cat(arg_root, t);
41 if (r < 0)
42 return r;
43 }
44
45 return 0;
46 }
47