Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9535 - main/branches/2.1.2/bin
Date: Fri, 28 Mar 2008 09:43:06
Message-Id: E1JfB72-0005Ym-5u@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-03-28 09:43:03 +0000 (Fri, 28 Mar 2008)
3 New Revision: 9535
4
5 Modified:
6 main/branches/2.1.2/bin/emerge
7 Log:
8 Add support for file paths as arguments to emerge. If an argument starts
9 with / and it's not recognized as a tbz2 or ebuild then we try to find
10 and owner in the vdb and generate a slot atom from it. Thanks to solar
11 for the suggestion. (trunk r9367)
12
13
14 Modified: main/branches/2.1.2/bin/emerge
15 ===================================================================
16 --- main/branches/2.1.2/bin/emerge 2008-03-28 09:32:04 UTC (rev 9534)
17 +++ main/branches/2.1.2/bin/emerge 2008-03-28 09:43:03 UTC (rev 9535)
18 @@ -1469,6 +1469,7 @@
19 self._reinstall_nodes = {}
20 self.mydbapi = {}
21 self.trees = {}
22 + self._trees_orig = trees
23 self.roots = {}
24 for myroot in trees:
25 self.trees[myroot] = {}
26 @@ -2010,6 +2011,34 @@
27 None, "--onlydeps" not in self.myopts, arg=x):
28 return (0,myfavorites)
29 arg_atoms.append((x, "="+mykey))
30 + elif x.startswith(os.path.sep):
31 + if not x.startswith(myroot):
32 + portage.writemsg(("\n\n!!! '%s' does not start with" + \
33 + " $ROOT.\n") % x, noiselevel=-1)
34 + return 0, []
35 + relative_path = x[len(myroot):]
36 + vartree = self._trees_orig[myroot]["vartree"]
37 + owner_cpv = None
38 + for cpv in vardb.cpv_all():
39 + self.spinner.update()
40 + cat, pf = portage.catsplit(cpv)
41 + if portage.dblink(cat, pf, myroot,
42 + pkgsettings, vartree=vartree).isowner(
43 + relative_path, myroot):
44 + owner_cpv = cpv
45 + break
46 + if owner_cpv is None:
47 + portage.writemsg(("\n\n!!! '%s' is not claimed " + \
48 + "by any package.\n") % x, noiselevel=-1)
49 + return 0, []
50 + slot = vardb.aux_get(owner_cpv, ["SLOT"])[0]
51 + if not slot:
52 + # portage now masks packages with missing slot, but it's
53 + # possible that one was installed by an older version
54 + atom = portage.cpv_getkey(owner_cpv)
55 + else:
56 + atom = "%s:%s" % (portage.cpv_getkey(owner_cpv), slot)
57 + arg_atoms.append((x, atom))
58 else:
59 if not is_valid_package_atom(x):
60 portage.writemsg("\n\n!!! '%s' is not a valid package atom.\n" % x,
61
62 --
63 gentoo-commits@l.g.o mailing list