mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-03-13 01:26:37 -04:00
Fix argparse handling when no subcommand given
This commit is contained in:
parent
a7b9bdd91d
commit
722b1d070b
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
#
|
#
|
||||||
# Copyright (C) 2023 KeePassXC Team <team@keepassxc.org>
|
# Copyright (C) 2025 KeePassXC Team <team@keepassxc.org>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it # under the terms of the GNU General Public License as published by
|
# it # under the terms of the GNU General Public License as published by
|
||||||
@ -18,10 +18,12 @@
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import ctypes
|
import ctypes
|
||||||
|
import signal
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
|
import signal
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
@ -44,12 +46,12 @@ TAG_NAME = None
|
|||||||
DOCKER_IMAGE = None
|
DOCKER_IMAGE = None
|
||||||
DOCKER_CONTAINER_NAME = 'keepassxc-build-container'
|
DOCKER_CONTAINER_NAME = 'keepassxc-build-container'
|
||||||
CMAKE_OPTIONS = []
|
CMAKE_OPTIONS = []
|
||||||
CPACK_GENERATORS = 'WIX;ZIP'
|
CPACK_GENERATORS = 'ZIP'
|
||||||
COMPILER = 'g++'
|
COMPILER = 'g++'
|
||||||
MAKE_OPTIONS = f'-j{os.cpu_count()}'
|
MAKE_OPTIONS = f'-j{os.cpu_count()}'
|
||||||
BUILD_PLUGINS = 'all'
|
BUILD_PLUGINS = 'all'
|
||||||
INSTALL_PREFIX = '/usr/local'
|
INSTALL_PREFIX = '/usr/local'
|
||||||
MACOSX_DEPLOYMENT_TARGET = '10.15'
|
MACOSX_DEPLOYMENT_TARGET = '12'
|
||||||
TIMESTAMP_SERVER = 'http://timestamp.sectigo.com'
|
TIMESTAMP_SERVER = 'http://timestamp.sectigo.com'
|
||||||
|
|
||||||
|
|
||||||
@ -297,7 +299,6 @@ def main():
|
|||||||
|
|
||||||
parser = argparse.ArgumentParser(add_help=True)
|
parser = argparse.ArgumentParser(add_help=True)
|
||||||
subparsers = parser.add_subparsers(title='commands')
|
subparsers = parser.add_subparsers(title='commands')
|
||||||
subparsers.required = True
|
|
||||||
|
|
||||||
check_parser = subparsers.add_parser('check', help=Check.__doc__)
|
check_parser = subparsers.add_parser('check', help=Check.__doc__)
|
||||||
Check.setup_arg_parser(check_parser)
|
Check.setup_arg_parser(check_parser)
|
||||||
@ -328,13 +329,24 @@ def main():
|
|||||||
i18n_parser.set_defaults(_cmd=I18N)
|
i18n_parser.set_defaults(_cmd=I18N)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
args._cmd().run(**{k: v for k, v in vars(args).items() if k is not '_cmd'})
|
if '_cmd' not in args:
|
||||||
|
parser.print_help()
|
||||||
|
return 1
|
||||||
|
return args._cmd().run(**{k: v for k, v in vars(args).items() if k != '_cmd'}) or 0
|
||||||
|
|
||||||
|
|
||||||
|
def _sig_handler(_, __):
|
||||||
|
logger.warning('Process interrupted.')
|
||||||
|
sys.exit(3 | _cleanup())
|
||||||
|
|
||||||
|
|
||||||
|
signal.signal(signal.SIGINT, _sig_handler)
|
||||||
|
signal.signal(signal.SIGTERM, _sig_handler)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
ret = 0
|
ret = 0
|
||||||
try:
|
try:
|
||||||
main()
|
ret = main()
|
||||||
except Error as e:
|
except Error as e:
|
||||||
logger.error(e.msg, *e.args, extra=e.kwargs)
|
logger.error(e.msg, *e.args, extra=e.kwargs)
|
||||||
ret = 1
|
ret = 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user