From b9fa63849364b5f1a65a12faf84fab260da29132 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@koumbit.org>
Date: Tue, 23 Jul 2013 11:10:12 -0400
Subject: [PATCH] print usage when failing to parse commandline

---
 monkeysign/cli.py | 10 +++++++---
 monkeysign/ui.py  |  5 ++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/monkeysign/cli.py b/monkeysign/cli.py
index 88b4f39..2a5c7ac 100644
--- a/monkeysign/cli.py
+++ b/monkeysign/cli.py
@@ -32,15 +32,19 @@ script assumes you have gpg-agent configure to prompt for passwords."""
     usage = usage='%prog [options] <keyid>'
     epilog='<keyid>: a GPG fingerprint or key id'
 
+    def parse_args(self, args):
+        """override main parsing: we absolutely need an argument"""
+        parser = MonkeysignUi.parse_args(self, args)
+        if self.pattern is None:
+            parser.print_usage()
+            sys.exit('wrong number of arguments, use -h for full help')
+
     def main(self):
         """main code execution loop
 
         we expect to have the commandline parsed for us
         """
 
-        if self.pattern is None:
-            sys.exit('wrong number of arguments')
-
         MonkeysignUi.main(self)
 
         # 1. fetch the key into a temporary keyring
diff --git a/monkeysign/ui.py b/monkeysign/ui.py
index b06bb92..e818622 100644
--- a/monkeysign/ui.py
+++ b/monkeysign/ui.py
@@ -109,7 +109,10 @@ Regards,
         elif len(self.pattern) < 1:
             self.pattern = None
         else:
-            sys.exit('wrong number of arguments')
+            parser.print_usage()
+            sys.exit('wrong number of arguments, use -h for full help')
+        # make sure parser can be accessed outside of this function
+        return parser
 
     def __init__(self, args = None):
         # the options that determine how we operate, from the parse_args()
-- 
GitLab