diff options
Diffstat (limited to 'clients/cli/nmcli.c')
| -rw-r--r-- | clients/cli/nmcli.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/clients/cli/nmcli.c b/clients/cli/nmcli.c index ee621ca3..f5a66cdd 100644 --- a/clients/cli/nmcli.c +++ b/clients/cli/nmcli.c @@ -454,15 +454,16 @@ signal_handler (gpointer user_data) if (nmc_get_in_readline ()) { nmcli_sigint = TRUE; } else { - g_print (_("Error: nmcli terminated by signal %s (%d)\n"), - strsignal (signo), - signo); + nm_cli.return_value = 0x80 + signo; + g_string_printf (nm_cli.return_text, _("Error: nmcli terminated by signal %s (%d)"), + strsignal (signo), signo); g_main_loop_quit (loop); } break; case SIGTERM: - g_print (_("Error: nmcli terminated by signal %s (%d)\n"), - strsignal (signo), signo); + nm_cli.return_value = 0x80 + signo; + g_string_printf (nm_cli.return_text, _("Error: nmcli terminated by signal %s (%d)"), + strsignal (signo), signo); nmc_exit (); break; } @@ -633,13 +634,14 @@ main (int argc, char *argv[]) /* Save terminal settings */ tcgetattr (STDIN_FILENO, &termios_orig); - g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM)); - g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT)); - nmc_value_transforms_register (); nmc_init (&nm_cli); loop = g_main_loop_new (NULL, FALSE); + + g_unix_signal_add (SIGTERM, signal_handler, GINT_TO_POINTER (SIGTERM)); + g_unix_signal_add (SIGINT, signal_handler, GINT_TO_POINTER (SIGINT)); + if (process_command_line (&nm_cli, argc, argv)) g_main_loop_run (loop); |