Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/overlay/metadata/
Date: Mon, 30 Jul 2012 08:53:50
Message-Id: 1343231165.ebdfa6445d4f0e253f6f031b1da17044f9b8b889.dywi@gentoo
1 commit: ebdfa6445d4f0e253f6f031b1da17044f9b8b889
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Wed Jul 25 15:45:29 2012 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Wed Jul 25 15:46:05 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ebdfa644
7
8 don't write empty metadata
9
10 ---
11 roverlay/overlay/metadata/__init__.py | 28 ++++++++++++++++------------
12 1 files changed, 16 insertions(+), 12 deletions(-)
13
14 diff --git a/roverlay/overlay/metadata/__init__.py b/roverlay/overlay/metadata/__init__.py
15 index a0456f2..9cac712 100644
16 --- a/roverlay/overlay/metadata/__init__.py
17 +++ b/roverlay/overlay/metadata/__init__.py
18 @@ -86,32 +86,36 @@ class MetadataJob ( object ):
19 return mref
20 # --- end of update (...) ---
21
22 - def _write ( self, fh ):
23 + def _write ( self, fh, mref ):
24 """Writes the metadata into a file.
25
26 arguments:
27 - * _file -- file to write, either a file handle or string in which case
28 - a file object will be created
29 + * fh -- file handle used for writing
30
31 returns: True if writing succeeds, else False
32
33 raises: Exception if no metadata to write
34 """
35 - if self._create().write_file ( fh ):
36 - return True
37 - else:
38 - raise Exception ( "not enough metadata to write!" )
39 + return mref.write_file ( fh )
40 + #raise Exception ( "not enough metadata to write!" )
41 # --- end of _write (...) ---
42
43 - show = _write
44 + def show ( self, stream ):
45 + return self._create().write_file ( stream )
46 + # --- end of show (...) ---
47
48 def write ( self ):
49 _success = False
50 try:
51 - fh = open ( self.filepath, 'w' )
52 - self._write ( fh )
53 - _success = True
54 - except any as e:
55 + # succeed if metadata empty or written
56 + mref = self._create()
57 + if mref.empty():
58 + _success = True
59 + else:
60 + fh = open ( self.filepath, 'w' )
61 + _success = self._write ( fh )
62 +
63 + except Exception as e:
64 self.logger.exception ( e )
65 finally:
66 if 'fh' in locals() and fh: fh.close()