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/pkgdir/distroot/
Date: Fri, 30 Aug 2013 14:49:46
Message-Id: 1377874001.771754c749e09f8722324304a9399e67bbf9aafa.dywi@gentoo
1 commit: 771754c749e09f8722324304a9399e67bbf9aafa
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Fri Aug 30 14:46:41 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Fri Aug 30 14:46:41 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=771754c7
7
8 distroot: handle_file_collision()
9
10 This commit adds initial support for handling file collisions by simply ignoring
11 subsequent files with the same name (and screaming to stdout).
12
13 TODO notes:
14 * re-use volatile entries when creating manifest files
15 * (could) resolve file collisions with automatic renaming
16
17 ---
18 roverlay/overlay/pkgdir/distroot/distroot.py | 21 +++++++++++++++++++++
19 1 file changed, 21 insertions(+)
20
21 diff --git a/roverlay/overlay/pkgdir/distroot/distroot.py b/roverlay/overlay/pkgdir/distroot/distroot.py
22 index 6deb06f..96c6894 100644
23 --- a/roverlay/overlay/pkgdir/distroot/distroot.py
24 +++ b/roverlay/overlay/pkgdir/distroot/distroot.py
25 @@ -608,4 +608,25 @@ class PersistentDistroot ( DistrootBase ):
26 return tuple ( get_int ( s ) for s in strategy )
27 # --- end of _get_int_strategy (...) ---
28
29 + def handle_file_collision ( self, package_dir, package_info ):
30 + if self.distmap.get_distfile_slot ( package_dir, package_info ):
31 + return True
32 + else:
33 + # TODO/COULDFIX:
34 + # resolve conflict instead of ignoring filtering
35 + #
36 +
37 + # *** DEBUG CODE ***
38 + vartable = package_info.create_vartable ( package_dir.get_upper().name )
39 + print (
40 + "dropping {P} from {CATEGORY}/{PN}".format ( **vartable )
41 + )
42 + self.logger.info (
43 + "dropping {!r}: distmap file collision.".format ( package_info )
44 + )
45 + # *** END DEBUG CODE ***
46 +
47 + return False
48 + # --- end of handle_file_collision (...) ---
49 +
50 # --- end of PersistentDistroot ---