1 |
commit: c837ca65bd137c69a8ab32d3267b0308089180fe |
2 |
Author: Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu Aug 1 14:28:05 2013 +0000 |
4 |
Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com> |
5 |
CommitDate: Thu Aug 1 14:28:05 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=c837ca65 |
7 |
|
8 |
g_sorcery/backend: different fixes |
9 |
|
10 |
--- |
11 |
g_sorcery/backend.py | 75 ++++++++++++++++++++++++++++++++-------------------- |
12 |
1 file changed, 47 insertions(+), 28 deletions(-) |
13 |
|
14 |
diff --git a/g_sorcery/backend.py b/g_sorcery/backend.py |
15 |
index e38eba7..9e2ef66 100644 |
16 |
--- a/g_sorcery/backend.py |
17 |
+++ b/g_sorcery/backend.py |
18 |
@@ -12,9 +12,7 @@ |
19 |
""" |
20 |
|
21 |
import argparse |
22 |
-import glob |
23 |
import os |
24 |
-import sys |
25 |
|
26 |
from .compatibility import py2k |
27 |
|
28 |
@@ -50,7 +48,8 @@ class Backend(object): |
29 |
|
30 |
def __init__(self, package_db_generator_class, |
31 |
ebuild_g_with_digest_class, ebuild_g_without_digest_class, |
32 |
- eclass_g_class, metadata_g_class, package_db_class=PackageDB, sync_db=False): |
33 |
+ eclass_g_class, metadata_g_class, |
34 |
+ package_db_class=PackageDB, sync_db=False): |
35 |
self.sorcery_dir = '.g-sorcery' |
36 |
self.sync_db = sync_db |
37 |
self.package_db_generator = package_db_generator_class(package_db_class) |
38 |
@@ -59,7 +58,8 @@ class Backend(object): |
39 |
self.eclass_g_class = eclass_g_class |
40 |
self.metadata_g_class = metadata_g_class |
41 |
|
42 |
- self.parser = argparse.ArgumentParser(description='Automatic ebuild generator.') |
43 |
+ self.parser = \ |
44 |
+ argparse.ArgumentParser(description='Automatic ebuild generator.') |
45 |
self.parser.add_argument('-o', '--overlay') |
46 |
self.parser.add_argument('-r', '--repository') |
47 |
|
48 |
@@ -101,8 +101,8 @@ class Backend(object): |
49 |
overlay = args.overlay |
50 |
if not overlay: |
51 |
if not 'default_overlay' in config: |
52 |
- self.logger.error("no overlay given, exiting.") |
53 |
- return None |
54 |
+ self.logger.error("no overlay given, exiting.") |
55 |
+ return None |
56 |
else: |
57 |
overlay = config['default_overlay'] |
58 |
overlay = args.overlay |
59 |
@@ -121,9 +121,11 @@ class Backend(object): |
60 |
Package database object. |
61 |
""" |
62 |
overlay = self._get_overlay(args, config, global_config) |
63 |
- backend_path = os.path.join(overlay, self.sorcery_dir, config["package"]) |
64 |
+ backend_path = os.path.join(overlay, |
65 |
+ self.sorcery_dir, config["package"]) |
66 |
repository = args.repository |
67 |
- pkg_db = self.package_db_generator(backend_path, repository, generate=False) |
68 |
+ pkg_db = self.package_db_generator(backend_path, |
69 |
+ repository, generate=False) |
70 |
return pkg_db |
71 |
|
72 |
def sync(self, args, config, global_config): |
73 |
@@ -139,7 +141,8 @@ class Backend(object): |
74 |
Exit status. |
75 |
""" |
76 |
overlay = self._get_overlay(args, config, global_config) |
77 |
- backend_path = os.path.join(overlay, self.sorcery_dir, config["package"]) |
78 |
+ backend_path = os.path.join(overlay, |
79 |
+ self.sorcery_dir, config["package"]) |
80 |
repository = args.repository |
81 |
repository = args.repository |
82 |
repository_config = {} |
83 |
@@ -152,7 +155,7 @@ class Backend(object): |
84 |
if repository: |
85 |
if not "repositories" in config: |
86 |
self.logger.error("repository " + repository + |
87 |
- " specified, but there is no repositories entry in config") |
88 |
+ " specified, but there is no repositories entry in config") |
89 |
return -1 |
90 |
repositories = config["repositories"] |
91 |
if not repository in repositories: |
92 |
@@ -168,7 +171,8 @@ class Backend(object): |
93 |
common_config, repository_config, generate=False) |
94 |
pkg_db.sync(repository_config["db_uri"]) |
95 |
else: |
96 |
- pkg_db = self.package_db_generator(backend_path, repository, common_config, repository_config) |
97 |
+ pkg_db = self.package_db_generator(backend_path, |
98 |
+ repository, common_config, repository_config) |
99 |
return 0 |
100 |
|
101 |
def list(self, args, config, global_config): |
102 |
@@ -194,7 +198,8 @@ class Backend(object): |
103 |
for pkg in packages: |
104 |
max_ver = pkg_db.get_max_version(category, pkg) |
105 |
versions = pkg_db.list_package_versions(category, pkg) |
106 |
- desc = pkg_db.get_package_description(Package(category, pkg, max_ver)) |
107 |
+ desc = pkg_db.get_package_description(Package(category, |
108 |
+ pkg, max_ver)) |
109 |
print(' ' + pkg + ': ' + desc['description']) |
110 |
print(' Available versions: ' + ' '.join(versions)) |
111 |
print('\n') |
112 |
@@ -242,12 +247,14 @@ class Backend(object): |
113 |
categories.append(cat) |
114 |
|
115 |
if not len(categories): |
116 |
- self.logger.error('no package with name ' + pkgname + ' found\n') |
117 |
+ self.logger.error('no package with name ' \ |
118 |
+ + pkgname + ' found\n') |
119 |
return -1 |
120 |
|
121 |
if len(categories) > 1: |
122 |
self.logger.error('ambiguous packagename: ' + pkgname + '\n') |
123 |
- self.logger.error('please select one of the following packages:\n') |
124 |
+ self.logger.error('please select one of' \ |
125 |
+ + 'the following packages:\n') |
126 |
for cat in categories: |
127 |
self.logger.error(' ' + cat + '/' + pkgname + '\n') |
128 |
return -1 |
129 |
@@ -257,7 +264,8 @@ class Backend(object): |
130 |
dependencies = set() |
131 |
try: |
132 |
for version in versions: |
133 |
- dependencies |= self.solve_dependencies(pkg_db, Package(category, name, version))[0] |
134 |
+ dependencies |= self.solve_dependencies(pkg_db, |
135 |
+ Package(category, name, version))[0] |
136 |
except Exception as e: |
137 |
self.logger.error('dependency solving failed: ' + str(e) + '\n') |
138 |
return -1 |
139 |
@@ -292,12 +300,14 @@ class Backend(object): |
140 |
category = package.category |
141 |
name = package.name |
142 |
version = package.version |
143 |
- self.logger.info(" generating " + category + '/' + name + '-' + version) |
144 |
+ self.logger.info(" generating " + |
145 |
+ category + '/' + name + '-' + version) |
146 |
path = os.path.join(overlay, category, name) |
147 |
if not os.path.exists(path): |
148 |
os.makedirs(path) |
149 |
source = ebuild_g.generate(package) |
150 |
- with open(os.path.join(path, name + '-' + version + '.ebuild'), 'w') as f: |
151 |
+ with open(os.path.join(path, |
152 |
+ name + '-' + version + '.ebuild'), 'w') as f: |
153 |
f.write('\n'.join(source)) |
154 |
|
155 |
|
156 |
@@ -340,7 +350,8 @@ class Backend(object): |
157 |
f.write('\n'.join(source)) |
158 |
|
159 |
|
160 |
- def solve_dependencies(self, package_db, package, solved_deps=None, unsolved_deps=None): |
161 |
+ def solve_dependencies(self, package_db, package, |
162 |
+ solved_deps=None, unsolved_deps=None): |
163 |
""" |
164 |
Solve dependencies. |
165 |
|
166 |
@@ -370,7 +381,7 @@ class Backend(object): |
167 |
found = True |
168 |
try: |
169 |
desc = package_db.get_package_description(package) |
170 |
- except KeyError as e: |
171 |
+ except KeyError: |
172 |
found = False |
173 |
if not found: |
174 |
error = "package " + package.category + '/' + \ |
175 |
@@ -379,11 +390,12 @@ class Backend(object): |
176 |
|
177 |
dependencies = desc["dependencies"] |
178 |
for pkg in dependencies: |
179 |
- versions = package_db.list_package_versions(pkg.category, pkg.package) |
180 |
+ versions = package_db.list_package_versions(pkg.category, |
181 |
+ pkg.package) |
182 |
for version in versions: |
183 |
solved_deps, unsolved_deps = self.solve_dependencies(package_db, |
184 |
- Package(pkg.category, pkg.package, version), |
185 |
- solved_deps, unsolved_deps) |
186 |
+ Package(pkg.category, pkg.package, version), |
187 |
+ solved_deps, unsolved_deps) |
188 |
|
189 |
solved_deps.add(package) |
190 |
unsolved_deps.remove(package) |
191 |
@@ -450,12 +462,15 @@ class Backend(object): |
192 |
category = package.category |
193 |
name = package.name |
194 |
version = package.version |
195 |
- self.logger.info(" generating " + category + '/' + name + '-' + version) |
196 |
+ self.logger.info(" generating " + |
197 |
+ category + '/' + name + '-' + version) |
198 |
path = os.path.join(overlay, category, name) |
199 |
if not os.path.exists(path): |
200 |
os.makedirs(path) |
201 |
source = ebuild_g.generate(package, ebuild_data) |
202 |
- with open(os.path.join(path, name + '-' + version + '.ebuild'), 'w') as f: |
203 |
+ with open(os.path.join(path, |
204 |
+ name + '-' + version + '.ebuild'), |
205 |
+ 'w') as f: |
206 |
f.write('\n'.join(source)) |
207 |
|
208 |
source = metadata_g.generate(package) |
209 |
@@ -498,7 +513,8 @@ class Backend(object): |
210 |
package_manager = None |
211 |
if package_manager: |
212 |
if not package_manager in package_managers: |
213 |
- self.logger.error('not supported package manager: ' + package_manager + '\n') |
214 |
+ self.logger.error('not supported package manager: ' \ |
215 |
+ + package_manager + '\n') |
216 |
return -1 |
217 |
package_manager_class = package_managers[package_manager] |
218 |
package_manager = package_manager_class() |
219 |
@@ -506,7 +522,8 @@ class Backend(object): |
220 |
|
221 |
def __call__(self, args, config, global_config): |
222 |
args = self.parser.parse_args(args) |
223 |
- info_f = FileJSON(os.path.join(args.overlay, self.sorcery_dir), "info.json", ["repositories"]) |
224 |
+ info_f = FileJSON(os.path.join(args.overlay, self.sorcery_dir), |
225 |
+ "info.json", ["repositories"]) |
226 |
self.info = info_f.read() |
227 |
repos = self.info["repositories"] |
228 |
if args.repository: |
229 |
@@ -528,11 +545,13 @@ class Backend(object): |
230 |
if len(brepos) == 1: |
231 |
args.repository = brepos[0] |
232 |
else: |
233 |
- self.logger.error("No repository specified, possible values:") |
234 |
+ self.logger.error("No repository specified," \ |
235 |
+ + " possible values:") |
236 |
for repo in brepos: |
237 |
print(" " + repo) |
238 |
return -1 |
239 |
else: |
240 |
- self.logger.error("No repository for backend " + back + " in overlay " + args.overlay) |
241 |
+ self.logger.error("No repository for backend " \ |
242 |
+ + back + " in overlay " + args.overlay) |
243 |
return -1 |
244 |
return args.func(args, config, global_config) |