2121#
2222
2323import argparse
24+ import importlib .metadata
2425from PyQt6 import QtCore , QtWidgets , QtGui # pylint: disable=import-error
2526import os
2627import os .path
28+ import sys
2729import logging
2830import logging .handlers
2931
4345
4446# pylint: disable=too-few-public-methods
4547def parse_args ():
46- parser = argparse .ArgumentParser ()
48+ parser = argparse .ArgumentParser ( \
49+ formatter_class = argparse .RawDescriptionHelpFormatter )
4750 parser .add_argument (
4851 '--log' , action = 'store' , default = 'INFO' ,
4952 choices = ['DEBUG' , 'INFO' , 'WARNING' , 'ERROR' , 'CRITICAL' ],
5053 help = 'Provide logging level. Values: DEBUG, INFO, '
5154 'INFO (default), ERROR, CRITICAL' )
55+ _metadata_ = importlib .metadata .metadata ('qubesmanager' )
56+ parser .version = '{} ({}) {}' .format (os .path .basename (sys .argv [0 ]), \
57+ _metadata_ ['summary' ], _metadata_ ['version' ])
58+ parser .version += '\n Copyright (C) {}' .format (_metadata_ ['author' ])
59+ parser .version += '\n License: {}' .format (_metadata_ ['license' ])
60+ parser .add_argument ('--version' , action = 'version' )
5261 args = parser .parse_args ()
5362 return args
5463
@@ -85,7 +94,7 @@ def run(self):
8594
8695class RestoreVMsWindow (ui_restoredlg .Ui_Restore , QtWidgets .QWizard ):
8796 def __init__ (self , qt_app , qubes_app , parent = None ):
88- cliargs = parse_args ()
97+ self . cliargs = parse_args ()
8998 super ().__init__ (parent )
9099
91100 self .qt_app = qt_app
@@ -104,7 +113,7 @@ def __init__(self, qt_app, qubes_app, parent=None):
104113 handler = logging .handlers .QueueHandler (self .feedback_queue )
105114 logger = logging .getLogger ('qubesadmin.backup' )
106115 logger .addHandler (handler )
107- logger .setLevel (cliargs .log )
116+ logger .setLevel (self . cliargs .log )
108117
109118 self .backup_restore = None
110119 self .target_appvm = None
0 commit comments