summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-02-21 13:40:45 +0100
committerLennart Poettering <lennart@poettering.net>2022-02-21 17:22:23 +0100
commitc649b343b4bcf9937a33caa7ace8cdf041db162e (patch)
tree85ebbee8a79e287037c56a60087d1703d5b103aa
parentanalyze: split out "plot" verb (diff)
downloadsystemd-c649b343b4bcf9937a33caa7ace8cdf041db162e.tar.xz
systemd-c649b343b4bcf9937a33caa7ace8cdf041db162e.zip
analyze: split out cat-config verb
-rw-r--r--src/analyze/analyze-cat-config.c46
-rw-r--r--src/analyze/analyze-cat-config.h4
-rw-r--r--src/analyze/analyze.c39
-rw-r--r--src/analyze/analyze.h1
-rw-r--r--src/analyze/meson.build2
5 files changed, 55 insertions, 37 deletions
diff --git a/src/analyze/analyze-cat-config.c b/src/analyze/analyze-cat-config.c
new file mode 100644
index 0000000000..e7cc33132e
--- /dev/null
+++ b/src/analyze/analyze-cat-config.c
@@ -0,0 +1,46 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "analyze.h"
+#include "analyze-cat-config.h"
+#include "conf-files.h"
+#include "def.h"
+#include "nulstr-util.h"
+#include "path-util.h"
+#include "pretty-print.h"
+#include "strv.h"
+
+int cat_config(int argc, char *argv[], void *userdata) {
+ char **arg, **list;
+ int r;
+
+ pager_open(arg_pager_flags);
+
+ list = strv_skip(argv, 1);
+ STRV_FOREACH(arg, list) {
+ const char *t = NULL;
+
+ if (arg != list)
+ print_separator();
+
+ if (path_is_absolute(*arg)) {
+ const char *dir;
+
+ NULSTR_FOREACH(dir, CONF_PATHS_NULSTR("")) {
+ t = path_startswith(*arg, dir);
+ if (t)
+ break;
+ }
+
+ if (!t)
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "Path %s does not start with any known prefix.", *arg);
+ } else
+ t = *arg;
+
+ r = conf_files_cat(arg_root, t);
+ if (r < 0)
+ return r;
+ }
+
+ return 0;
+}
diff --git a/src/analyze/analyze-cat-config.h b/src/analyze/analyze-cat-config.h
new file mode 100644
index 0000000000..8c16c2da2a
--- /dev/null
+++ b/src/analyze/analyze-cat-config.h
@@ -0,0 +1,4 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+int cat_config(int argc, char *argv[], void *userdata);
diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index 90d1eb1349..dc3bf9c17e 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -16,6 +16,7 @@
#include "analyze-blame.h"
#include "analyze-calendar.h"
#include "analyze-capability.h"
+#include "analyze-cat-config.h"
#include "analyze-condition.h"
#include "analyze-dot.h"
#include "analyze-dump.h"
@@ -87,7 +88,7 @@ UnitFileScope arg_scope = UNIT_FILE_SYSTEM;
static RecursiveErrors arg_recursive_errors = RECURSIVE_ERRORS_YES;
static bool arg_man = true;
static bool arg_generators = false;
-static char *arg_root = NULL;
+char *arg_root = NULL;
static char *arg_image = NULL;
static char *arg_security_policy = NULL;
static bool arg_offline = false;
@@ -434,42 +435,6 @@ static int analyze_time(int argc, char *argv[], void *userdata) {
return 0;
}
-static int cat_config(int argc, char *argv[], void *userdata) {
- char **arg, **list;
- int r;
-
- pager_open(arg_pager_flags);
-
- list = strv_skip(argv, 1);
- STRV_FOREACH(arg, list) {
- const char *t = NULL;
-
- if (arg != list)
- print_separator();
-
- if (path_is_absolute(*arg)) {
- const char *dir;
-
- NULSTR_FOREACH(dir, CONF_PATHS_NULSTR("")) {
- t = path_startswith(*arg, dir);
- if (t)
- break;
- }
-
- if (!t)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
- "Path %s does not start with any known prefix.", *arg);
- } else
- t = *arg;
-
- r = conf_files_cat(arg_root, t);
- if (r < 0)
- return r;
- }
-
- return 0;
-}
-
static int verb_log_control(int argc, char *argv[], void *userdata) {
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
int r;
diff --git a/src/analyze/analyze.h b/src/analyze/analyze.h
index 97b43da0ca..7d4b0d408f 100644
--- a/src/analyze/analyze.h
+++ b/src/analyze/analyze.h
@@ -20,6 +20,7 @@ extern PagerFlags arg_pager_flags;
extern BusTransport arg_transport;
extern const char *arg_host;
extern UnitFileScope arg_scope;
+extern char *arg_root;
extern unsigned arg_iterations;
extern usec_t arg_base_time;
extern bool arg_quiet;
diff --git a/src/analyze/meson.build b/src/analyze/meson.build
index 7b4bf4eee7..3f7eb9522e 100644
--- a/src/analyze/meson.build
+++ b/src/analyze/meson.build
@@ -7,6 +7,8 @@ systemd_analyze_sources = files('''
analyze-calendar.h
analyze-capability.c
analyze-capability.h
+ analyze-cat-config.c
+ analyze-cat-config.h
analyze-condition.c
analyze-condition.h
analyze-dot.c