chiark / gitweb /
main: force exit on keyboard interrupt
[fdroidserver.git] / fdroid
diff --git a/fdroid b/fdroid
index f5e6c92b5dce805a11109987e948531f1cf44599..a66df6b10098f49b577b02e9ae654bb3c4e29d27 100755 (executable)
--- a/fdroid
+++ b/fdroid
@@ -18,6 +18,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import sys
+import os
 import logging
 
 import fdroidserver.common
@@ -53,7 +54,7 @@ commands = OrderedDict([
 
 
 def print_help():
-    print(_("usage: ") + _("fdroid [-h|--help|--version] <command> [<args>]"))
+    print(_("usage: ") + _("fdroid [<command>] [-h|--help|--version|<args>]"))
     print("")
     print(_("Valid commands are:"))
     for cmd, summary in commands.items():
@@ -73,7 +74,6 @@ def main():
             print_help()
             sys.exit(0)
         elif command == '--version':
-            import os.path
             output = _('no version info found!')
             cmddir = os.path.realpath(os.path.dirname(__file__))
             moduledir = os.path.realpath(os.path.dirname(fdroidserver.common.__file__) + '/..')
@@ -143,7 +143,9 @@ def main():
         sys.exit(1)
     except KeyboardInterrupt:
         print('')
-        sys.exit(1)
+        sys.stdout.flush()
+        sys.stderr.flush()
+        os._exit(1)
     # These should only be unexpected crashes due to bugs in the code
     # str(e) often doesn't contain a reason, so just show the backtrace
     except Exception as e: