21
21
#
22
22
23
23
import argparse
24
+ import importlib .metadata
24
25
from PyQt6 import QtCore , QtWidgets , QtGui # pylint: disable=import-error
25
26
import os
26
27
import os .path
28
+ import sys
27
29
import logging
28
30
import logging .handlers
29
31
43
45
44
46
# pylint: disable=too-few-public-methods
45
47
def parse_args ():
46
- parser = argparse .ArgumentParser ()
48
+ parser = argparse .ArgumentParser ( \
49
+ formatter_class = argparse .RawDescriptionHelpFormatter )
47
50
parser .add_argument (
48
51
'--log' , action = 'store' , default = 'INFO' ,
49
52
choices = ['DEBUG' , 'INFO' , 'WARNING' , 'ERROR' , 'CRITICAL' ],
50
53
help = 'Provide logging level. Values: DEBUG, INFO, '
51
54
'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' )
52
61
args = parser .parse_args ()
53
62
return args
54
63
@@ -85,7 +94,7 @@ def run(self):
85
94
86
95
class RestoreVMsWindow (ui_restoredlg .Ui_Restore , QtWidgets .QWizard ):
87
96
def __init__ (self , qt_app , qubes_app , parent = None ):
88
- cliargs = parse_args ()
97
+ self . cliargs = parse_args ()
89
98
super ().__init__ (parent )
90
99
91
100
self .qt_app = qt_app
@@ -104,7 +113,7 @@ def __init__(self, qt_app, qubes_app, parent=None):
104
113
handler = logging .handlers .QueueHandler (self .feedback_queue )
105
114
logger = logging .getLogger ('qubesadmin.backup' )
106
115
logger .addHandler (handler )
107
- logger .setLevel (cliargs .log )
116
+ logger .setLevel (self . cliargs .log )
108
117
109
118
self .backup_restore = None
110
119
self .target_appvm = None
0 commit comments