diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2018-05-21 17:06:09 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2019-06-14 11:04:06 +0200 |
commit | 197fcb7a2e61b78c7b84659a7baf7dd1cf1e5864 (patch) | |
tree | c06d4aa1f437dbcbc09cdf4ffb715bf44ba66e52 | |
parent | 204d9d747e132b554a6b476dfeb3171e5d8ebaf3 (diff) | |
download | NetworkManager-lr/alternatives-two.tar.gz |
cli: allow being called as ifup/ifdownlr/alternatives-two
Use that as an alias of "nmcli dev connect" or "nmcli dev disconnect"
respectively.
Don't advertise it really because it's not really a preferred way for
doing things, but it will help transitioning away from legacy iniscripts
while still keeping some compatibility.
-rw-r--r-- | clients/cli/nmcli.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c index ad45f179a5..6da3ace6aa 100644 --- a/clients/cli/nmcli.c +++ b/clients/cli/nmcli.c @@ -959,6 +959,9 @@ nmc_cleanup (NmCli *nmc) int main (int argc, char *argv[]) { + char *basename; + char *ifupdown[5] = { 0, }; + /* Set locale to use environment variables */ setlocale (LC_ALL, ""); @@ -978,6 +981,21 @@ main (int argc, char *argv[]) g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM)); g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT)); + basename = strrchr (argv[0], '/'); + if (basename) + basename++; + else + basename = argv[0]; + if (NM_IN_STRSET (basename, "ifup", "ifdown")) { + ifupdown[0] = "nmcli"; + ifupdown[1] = "connection"; + ifupdown[2] = &basename[2]; /* up/down */ + ifupdown[3] = "filename"; + ifupdown[4] = g_strdup_printf ("%s/ifcfg-%s", SYSCONFDIR "/sysconfig/network-scripts", argv[1]); + argv = ifupdown; + argc = G_N_ELEMENTS (ifupdown); + } + if (process_command_line (&nm_cli, argc, argv)) g_main_loop_run (loop); @@ -992,6 +1010,7 @@ main (int argc, char *argv[]) g_main_loop_unref (loop); nmc_cleanup (&nm_cli); + g_free (ifupdown[4]); return nm_cli.return_value; } |