1 |
Author: zmedico |
2 |
Date: 2010-02-25 22:28:00 +0000 (Thu, 25 Feb 2010) |
3 |
New Revision: 15468 |
4 |
|
5 |
Modified: |
6 |
main/trunk/pym/portage/__init__.py |
7 |
main/trunk/pym/portage/dbapi/vartree.py |
8 |
Log: |
9 |
Move merge and unmerge functions to the vartree module. |
10 |
|
11 |
|
12 |
Modified: main/trunk/pym/portage/__init__.py |
13 |
=================================================================== |
14 |
--- main/trunk/pym/portage/__init__.py 2010-02-25 22:26:31 UTC (rev 15467) |
15 |
+++ main/trunk/pym/portage/__init__.py 2010-02-25 22:28:00 UTC (rev 15468) |
16 |
@@ -86,7 +86,7 @@ |
17 |
'portage.dbapi.dep_expand:dep_expand', |
18 |
'portage.dbapi.porttree:close_portdbapi_caches,FetchlistDict,' + \ |
19 |
'portagetree,portdbapi', |
20 |
- 'portage.dbapi.vartree:vardbapi,vartree,dblink', |
21 |
+ 'portage.dbapi.vartree:dblink,merge,unmerge,vardbapi,vartree', |
22 |
'portage.dbapi.virtual:fakedbapi', |
23 |
'portage.dep', |
24 |
'portage.dep:best_match_to_list,dep_getcpv,dep_getkey,' + \ |
25 |
@@ -616,38 +616,6 @@ |
26 |
raise portage.exception.PortageException( |
27 |
"mv '%s' '%s'" % (src, dest)) |
28 |
|
29 |
-def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None, |
30 |
- mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None, |
31 |
- scheduler=None): |
32 |
- if not os.access(myroot, os.W_OK): |
33 |
- writemsg(_("Permission denied: access('%s', W_OK)\n") % myroot, |
34 |
- noiselevel=-1) |
35 |
- return errno.EACCES |
36 |
- mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree, |
37 |
- vartree=vartree, blockers=blockers, scheduler=scheduler) |
38 |
- return mylink.merge(pkgloc, infloc, myroot, myebuild, |
39 |
- mydbapi=mydbapi, prev_mtimes=prev_mtimes) |
40 |
- |
41 |
-def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None, |
42 |
- ldpath_mtimes=None, scheduler=None): |
43 |
- mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree", |
44 |
- vartree=vartree, scheduler=scheduler) |
45 |
- vartree = mylink.vartree |
46 |
- try: |
47 |
- mylink.lockdb() |
48 |
- if mylink.exists(): |
49 |
- vartree.dbapi.plib_registry.load() |
50 |
- vartree.dbapi.plib_registry.pruneNonExisting() |
51 |
- retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1, |
52 |
- ldpath_mtimes=ldpath_mtimes) |
53 |
- if retval == os.EX_OK: |
54 |
- mylink.delete() |
55 |
- return retval |
56 |
- return os.EX_OK |
57 |
- finally: |
58 |
- vartree.dbapi.linkmap._clear_cache() |
59 |
- mylink.unlockdb() |
60 |
- |
61 |
auxdbkeys = ( |
62 |
'DEPEND', 'RDEPEND', 'SLOT', 'SRC_URI', |
63 |
'RESTRICT', 'HOMEPAGE', 'LICENSE', 'DESCRIPTION', |
64 |
|
65 |
Modified: main/trunk/pym/portage/dbapi/vartree.py |
66 |
=================================================================== |
67 |
--- main/trunk/pym/portage/dbapi/vartree.py 2010-02-25 22:26:31 UTC (rev 15467) |
68 |
+++ main/trunk/pym/portage/dbapi/vartree.py 2010-02-25 22:28:00 UTC (rev 15468) |
69 |
@@ -4473,6 +4473,38 @@ |
70 |
"Is this a regular package (does it have a CATEGORY file? A dblink can be virtual *and* regular)" |
71 |
return os.path.exists(os.path.join(self.dbdir, "CATEGORY")) |
72 |
|
73 |
+def merge(mycat, mypkg, pkgloc, infloc, myroot, mysettings, myebuild=None, |
74 |
+ mytree=None, mydbapi=None, vartree=None, prev_mtimes=None, blockers=None, |
75 |
+ scheduler=None): |
76 |
+ if not os.access(myroot, os.W_OK): |
77 |
+ writemsg(_("Permission denied: access('%s', W_OK)\n") % myroot, |
78 |
+ noiselevel=-1) |
79 |
+ return errno.EACCES |
80 |
+ mylink = dblink(mycat, mypkg, myroot, mysettings, treetype=mytree, |
81 |
+ vartree=vartree, blockers=blockers, scheduler=scheduler) |
82 |
+ return mylink.merge(pkgloc, infloc, myroot, myebuild, |
83 |
+ mydbapi=mydbapi, prev_mtimes=prev_mtimes) |
84 |
+ |
85 |
+def unmerge(cat, pkg, myroot, mysettings, mytrimworld=1, vartree=None, |
86 |
+ ldpath_mtimes=None, scheduler=None): |
87 |
+ mylink = dblink(cat, pkg, myroot, mysettings, treetype="vartree", |
88 |
+ vartree=vartree, scheduler=scheduler) |
89 |
+ vartree = mylink.vartree |
90 |
+ try: |
91 |
+ mylink.lockdb() |
92 |
+ if mylink.exists(): |
93 |
+ vartree.dbapi.plib_registry.load() |
94 |
+ vartree.dbapi.plib_registry.pruneNonExisting() |
95 |
+ retval = mylink.unmerge(trimworld=mytrimworld, cleanup=1, |
96 |
+ ldpath_mtimes=ldpath_mtimes) |
97 |
+ if retval == os.EX_OK: |
98 |
+ mylink.delete() |
99 |
+ return retval |
100 |
+ return os.EX_OK |
101 |
+ finally: |
102 |
+ vartree.dbapi.linkmap._clear_cache() |
103 |
+ mylink.unlockdb() |
104 |
+ |
105 |
def write_contents(contents, root, f): |
106 |
""" |
107 |
Write contents to any file like object. The file will be left open. |