1 |
commit: 3a7ca63ed7d8a57927835ce06b718354caa30b1a |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Tue Jul 31 14:02:27 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Tue Jul 31 14:02:27 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=3a7ca63e |
7 |
|
8 |
fix show_metadata |
9 |
|
10 |
this fixes calling show_metadata with no metadata available |
11 |
|
12 |
--- |
13 |
roverlay/overlay/metadata/__init__.py | 44 +++++++++++++++++++------------- |
14 |
roverlay/overlay/package.py | 1 + |
15 |
2 files changed, 27 insertions(+), 18 deletions(-) |
16 |
|
17 |
diff --git a/roverlay/overlay/metadata/__init__.py b/roverlay/overlay/metadata/__init__.py |
18 |
index c07f7a2..36e775c 100644 |
19 |
--- a/roverlay/overlay/metadata/__init__.py |
20 |
+++ b/roverlay/overlay/metadata/__init__.py |
21 |
@@ -42,7 +42,9 @@ class MetadataJob ( object ): |
22 |
self._package_info = package_info |
23 |
# --- end of update (...) --- |
24 |
|
25 |
- def update_using_iterable ( self, package_info_iter ): |
26 |
+ def update_using_iterable ( self, package_info_iter, reset=True ): |
27 |
+ if reset: |
28 |
+ self._package_info = None |
29 |
for package_info in package_info_iter: |
30 |
self.update ( package_info ) |
31 |
# --- end of update_using_iterable (...) --- |
32 |
@@ -101,24 +103,30 @@ class MetadataJob ( object ): |
33 |
# --- end of _write (...) --- |
34 |
|
35 |
def show ( self, stream ): |
36 |
- return self._create().write_file ( stream ) |
37 |
+ if self._package_info is not None: |
38 |
+ return self._create().write_file ( stream ) |
39 |
+ else: |
40 |
+ return False |
41 |
# --- end of show (...) --- |
42 |
|
43 |
def write ( self ): |
44 |
- _success = False |
45 |
- try: |
46 |
- # succeed if metadata empty or written |
47 |
- mref = self._create() |
48 |
- if mref.empty(): |
49 |
- _success = True |
50 |
- else: |
51 |
- fh = open ( self.filepath, 'w' ) |
52 |
- _success = self._write ( fh, mref ) |
53 |
- |
54 |
- except Exception as e: |
55 |
- self.logger.exception ( e ) |
56 |
- finally: |
57 |
- if 'fh' in locals() and fh: fh.close() |
58 |
- |
59 |
- return _success |
60 |
+ if self._package_info is not None: |
61 |
+ _success = False |
62 |
+ try: |
63 |
+ # succeed if metadata empty or written |
64 |
+ mref = self._create() |
65 |
+ if mref.empty(): |
66 |
+ _success = True |
67 |
+ else: |
68 |
+ fh = open ( self.filepath, 'w' ) |
69 |
+ _success = self._write ( fh, mref ) |
70 |
+ |
71 |
+ except Exception as e: |
72 |
+ self.logger.exception ( e ) |
73 |
+ finally: |
74 |
+ if 'fh' in locals() and fh: fh.close() |
75 |
+ |
76 |
+ return _success |
77 |
+ else: |
78 |
+ return False |
79 |
# --- end of write (...) --- |
80 |
|
81 |
diff --git a/roverlay/overlay/package.py b/roverlay/overlay/package.py |
82 |
index cb5cf72..434b1b1 100644 |
83 |
--- a/roverlay/overlay/package.py |
84 |
+++ b/roverlay/overlay/package.py |
85 |
@@ -158,6 +158,7 @@ class PackageDir ( object ): |
86 |
# FIXME debug print |
87 |
print ( "removing {PVR} from {PN}".format ( PVR=pvr, PN=self.name ) ) |
88 |
del self._packages [pvr] |
89 |
+ self.generate_metadata ( skip_if_existent=False ) |
90 |
except KeyError: |
91 |
pass |
92 |
finally: |