1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import sys
17 import os
18 from rhnpush import rhnpush_config
19 from rhnpush import utils
20
21
23
24 - def __init__(self, optionparser, store_true_list):
25 sysdir = '/etc/sysconfig/rhn'
26 homedir = utils.get_home_dir()
27 default = 'rhnpushrc'
28 regular = '.rhnpushrc'
29 deffile = os.path.join(sysdir, default)
30 regfile = os.path.join(homedir, regular)
31 cwdfile = os.path.join(os.getcwd(), regular)
32
33 self.cfgFileList = [deffile, regfile, cwdfile]
34 self.defaultconfig = rhnpush_config.rhnpushConfigParser(ensure_consistency=True)
35
36
37 self.cmdconfig = optionparser
38 self.store_true_list = store_true_list
39
40
41
43
44 if ('files' in self.defaultconfig.__dict__ and
45 not isinstance(self.defaultconfig.files, type([]))):
46 self.defaultconfig.files = [x.strip() for x in
47 self.defaultconfig.files.split(',')]
48
49
50 if ('exclude' in self.defaultconfig.__dict__ and
51 not isinstance(self.defaultconfig.__dict__['exclude'], type([]))):
52 self.defaultconfig.exclude = [x.strip() for x in
53 self.defaultconfig.exclude.split(',')]
54
56 for f in self.cfgFileList:
57 if os.access(f, os.F_OK):
58 if not os.access(f, os.R_OK):
59 print(("rhnpush does not have read permission on %s" % f))
60 sys.exit(1)
61 config2 = rhnpush_config.rhnpushConfigParser(f)
62 self.defaultconfig, config2 = utils.make_common_attr_equal(self.defaultconfig, config2)
63
64 self._files_to_list()
65
66
67
68 if not self.defaultconfig.channel:
69
70
71 self.defaultconfig.channel = []
72 else:
73 self.defaultconfig.channel = [x.strip() for x in
74 self.defaultconfig.channel.split(',')]
75
76
77 argoptions, files = self.cmdconfig.parse_args()
78
79
80 _zero_to_none(self.defaultconfig, self.store_true_list)
81
82
83
84 if argoptions.verbose == 0:
85 argoptions.verbose = None
86
87
88 if self.defaultconfig.orgid:
89 self.defaultconfig.orgid = int(self.defaultconfig.orgid)
90
91 if self.defaultconfig.count:
92 self.defaultconfig.count = int(self.defaultconfig.count)
93
94 if self.defaultconfig.cache_lifetime:
95 self.defaultconfig.cache_lifetime = int(self.defaultconfig.cache_lifetime)
96
97 if self.defaultconfig.verbose:
98 self.defaultconfig.verbose = int(self.defaultconfig.verbose)
99
100 if self.defaultconfig.timeout:
101 self.defaultconfig.timeout = int(self.defaultconfig.timeout)
102
103
104 self.defaultconfig, argoptions = utils.make_common_attr_equal(self.defaultconfig, argoptions)
105
106
107 if self.defaultconfig.files != files:
108 self.defaultconfig.files = files
109
110 return self.defaultconfig
111
112
113
115 for opt in config.keys():
116 for cmd in store_true_list:
117 if str(opt) == cmd and config.__dict__[opt] == '0':
118 config.__dict__[opt] = None
119