[gjs: 5/11] console: Exit more gracefully when unknown command line option given
- From: Philip Chimento <pchimento src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs: 5/11] console: Exit more gracefully when unknown command line option given
- Date: Wed, 30 Oct 2019 17:16:04 +0000 (UTC)
commit 01883f93b58884ee3de50bd83fd14452013858a3
Author: Philip Chimento <philip chimento gmail com>
Date: Sat Oct 26 16:39:24 2019 -0700
console: Exit more gracefully when unknown command line option given
Previously the program would abort if an unknown option was given.
Instead, print the help text and exit cleanly with code 1.
gjs/console.cpp | 9 +++++++--
installed-tests/scripts/testCommandLine.sh | 5 +++++
2 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/gjs/console.cpp b/gjs/console.cpp
index 04d25050..3f9d9eb2 100644
--- a/gjs/console.cpp
+++ b/gjs/console.cpp
@@ -248,8 +248,13 @@ main(int argc, char **argv)
debugging = false;
g_option_context_set_ignore_unknown_options(context, false);
g_option_context_set_help_enabled(context, true);
- if (!g_option_context_parse_strv(context, &gjs_argv, &error))
- g_error("option parsing failed: %s", error->message);
+ if (!g_option_context_parse_strv(context, &gjs_argv, &error)) {
+ char* help_text = g_option_context_get_help(context, true, nullptr);
+ g_printerr("%s\n\n%s\n", error->message, help_text);
+ g_free(help_text);
+ g_option_context_free(context);
+ exit(1);
+ }
g_option_context_free (context);
diff --git a/installed-tests/scripts/testCommandLine.sh b/installed-tests/scripts/testCommandLine.sh
index 79c7a5ab..b77d66f4 100755
--- a/installed-tests/scripts/testCommandLine.sh
+++ b/installed-tests/scripts/testCommandLine.sh
@@ -83,6 +83,11 @@ skip () {
echo "ok $total - $1 # SKIP $2"
}
+$gjs --invalid-option
+report_xfail "Invalid option should exit with failure"
+$gjs --invalid-option 2>&1 | grep -q invalid-option
+report "Invalid option should print a relevant message"
+
# Test that System.exit() works in gjs-console
$gjs -c 'imports.system.exit(0)'
report "System.exit(0) should exit successfully"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]