Merge pull request #32297 from yuwata/networkctl-cat-without-args

networkctl: allow to call 'networkctl cat' without arguments
This commit is contained in:
Yu Watanabe
2024-04-16 16:42:46 +09:00
committed by GitHub
4 changed files with 26 additions and 7 deletions

View File

@@ -454,12 +454,16 @@ s - Service VLAN, m - Two-port MAC Relay (TPMR)
<varlistentry>
<term>
<command>cat</command>
<replaceable>FILE</replaceable>|<replaceable>@DEVICE</replaceable>
<optional><replaceable>FILE</replaceable>|<replaceable>@DEVICE</replaceable></optional>
</term>
<listitem><para>Show network configuration files. This command honors
the <literal>@</literal> prefix in the same way as <command>edit</command>.</para>
<listitem>
<para>Show network configuration files. This command honors the <literal>@</literal> prefix in the
same way as <command>edit</command>. When no argument is specified,
<citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and its drop-in files will be shown.</para>
<xi:include href="version-info.xml" xpointer="v254"/></listitem>
<xi:include href="version-info.xml" xpointer="v254"/>
</listitem>
</varlistentry>
<varlistentry>

View File

@@ -476,12 +476,16 @@ int verb_edit(int argc, char *argv[], void *userdata) {
int verb_cat(int argc, char *argv[], void *userdata) {
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
char **args = strv_skip(argv, 1);
int r, ret = 0;
pager_open(arg_pager_flags);
if (strv_isempty(args))
return conf_files_cat(NULL, "systemd/networkd.conf", CAT_FORMAT_HAS_SECTIONS);
bool first = true;
STRV_FOREACH(name, strv_skip(argv, 1)) {
STRV_FOREACH(name, args) {
_cleanup_strv_free_ char **dropins = NULL;
_cleanup_free_ char *path = NULL;
const char *link_config;

View File

@@ -2982,7 +2982,7 @@ static int help(void) {
" reconfigure DEVICES... Reconfigure interfaces\n"
" reload Reload .network and .netdev files\n"
" edit FILES|DEVICES... Edit network configuration files\n"
" cat FILES|DEVICES... Show network configuration files\n"
" cat [FILES|DEVICES...] Show network configuration files\n"
" mask FILES... Mask network configuration files\n"
" unmask FILES... Unmask network configuration files\n"
" persistent-storage BOOL\n"
@@ -3142,7 +3142,7 @@ static int networkctl_main(int argc, char *argv[]) {
{ "reconfigure", 2, VERB_ANY, VERB_ONLINE_ONLY, verb_reconfigure },
{ "reload", 1, 1, VERB_ONLINE_ONLY, verb_reload },
{ "edit", 2, VERB_ANY, 0, verb_edit },
{ "cat", 2, VERB_ANY, 0, verb_cat },
{ "cat", 1, VERB_ANY, 0, verb_cat },
{ "mask", 2, VERB_ANY, 0, verb_mask },
{ "unmask", 2, VERB_ANY, 0, verb_unmask },
{ "persistent-storage", 2, 2, 0, verb_persistent_storage },

View File

@@ -15,6 +15,8 @@ at_exit() {
{/usr/lib,/etc}/systemd/network/"$LINK_NAME" "/etc/systemd/network/${NETWORK_NAME}.d" \
"new" "+4"
fi
rm -f /run/systemd/networkd.conf.d/10-hoge.conf
}
trap at_exit EXIT
@@ -110,3 +112,12 @@ ip_link="$(ip link show test2)"
if systemctl --quiet is-active systemd-udevd; then
assert_in 'alias test_alias' "$ip_link"
fi
mkdir -p /run/systemd/networkd.conf.d
cat >/run/systemd/networkd.conf.d/10-hoge.conf <<EOF
# TEST DROP-IN FILE
[Network]
SpeedMeter=yes
EOF
assert_in '# TEST DROP-IN FILE' "$(networkctl cat)"