chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
systemctl: also color filenames of drop-ins in cat
[elogind.git]
/
src
/
systemctl
/
systemctl.c
diff --git
a/src/systemctl/systemctl.c
b/src/systemctl/systemctl.c
index d1f68754a91a5c957eb45c7ceb73ba8e838ae615..c20a82b8b45ad0c2938f1613341993418f711719 100644
(file)
--- a/
src/systemctl/systemctl.c
+++ b/
src/systemctl/systemctl.c
@@
-3678,6
+3678,7
@@
static int get_unit_dbus_path_by_pid(
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
+ char *u;
int r;
r = sd_bus_call_method(
int r;
r = sd_bus_call_method(
@@
-3694,10
+3695,15
@@
static int get_unit_dbus_path_by_pid(
return r;
}
return r;
}
- r = sd_bus_message_read(reply, "o",
unit
);
+ r = sd_bus_message_read(reply, "o",
&u
);
if (r < 0)
return bus_log_parse_error(r);
if (r < 0)
return bus_log_parse_error(r);
+ u = strdup(u);
+ if (!u)
+ return log_oom();
+
+ *unit = u;
return 0;
}
return 0;
}
@@
-3817,9
+3823,11
@@
static int cat(sd_bus *bus, char **args) {
}
STRV_FOREACH(path, dropin_paths) {
}
STRV_FOREACH(path, dropin_paths) {
- printf("%s
#
%s\n",
+ printf("%s
%s# %s
%s\n",
isempty(fragment_path) && path == dropin_paths ? "" : "\n",
isempty(fragment_path) && path == dropin_paths ? "" : "\n",
- *path);
+ ansi_highlight_blue(),
+ *path,
+ ansi_highlight_off());
fflush(stdout);
r = sendfile_full(STDOUT_FILENO, *path);
fflush(stdout);
r = sendfile_full(STDOUT_FILENO, *path);
@@
-3880,8
+3888,10
@@
static int show(sd_bus *bus, char **args) {
} else {
/* Interpret as PID */
r = get_unit_dbus_path_by_pid(bus, id, &unit);
} else {
/* Interpret as PID */
r = get_unit_dbus_path_by_pid(bus, id, &unit);
- if (r < 0)
+ if (r < 0)
{
ret = r;
ret = r;
+ continue;
+ }
}
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);
}
show_one(args[0], bus, unit, show_properties, &new_line, &ellipsized);