| … | |
… | |
| 3 | # This source code is distributed under the terms of version 2 of the GNU |
3 | # This source code is distributed under the terms of version 2 of the GNU |
| 4 | # General Public License as published by the Free Software Foundation, a copy |
4 | # General Public License as published by the Free Software Foundation, a copy |
| 5 | # of which can be found in the main directory of this project. |
5 | # of which can be found in the main directory of this project. |
| 6 | Gentoo Linux Installer |
6 | Gentoo Linux Installer |
| 7 | |
7 | |
| 8 | $Id: GLIPortage.py,v 1.10 2005/12/26 06:16:05 agaffney Exp $ |
8 | $Id: GLIPortage.py,v 1.11 2005/12/26 06:57:47 agaffney Exp $ |
| 9 | """ |
9 | """ |
| 10 | |
10 | |
| 11 | import re |
11 | import re |
| 12 | import GLIUtility |
12 | import GLIUtility |
| 13 | import GLIException |
13 | import GLIException |
| … | |
… | |
| 114 | if not GLIUtility.exitsuccess(GLIUtility.spawn("rm -rf " + self._chroot_dir + image_dir)): |
114 | if not GLIUtility.exitsuccess(GLIUtility.spawn("rm -rf " + self._chroot_dir + image_dir)): |
| 115 | raise GLIException("CopyPackageToChrootError", 'fatal', 'copy_pkg_to_chroot', "Could not remove + " + image_dir + " for " + package) |
115 | raise GLIException("CopyPackageToChrootError", 'fatal', 'copy_pkg_to_chroot', "Could not remove + " + image_dir + " for " + package) |
| 116 | |
116 | |
| 117 | def add_pkg_to_world(self, package): |
117 | def add_pkg_to_world(self, package): |
| 118 | if package.find("/") == -1: |
118 | if package.find("/") == -1: |
| 119 | package = GLIUtility.spawn("portageq best_version / " + package, chroot=self._chroot_dir, return_output=True)[1].strip() |
119 | package = self.get_best_version_vdb_chroot(package) |
| 120 | if not package: return False |
120 | if not package: return False |
| 121 | expr = re.compile('^(.+?)(-\d.+)?$') |
121 | expr = re.compile('^(.+?)(-\d.+)?$') |
| 122 | res = expr.match(package) |
122 | res = expr.match(package) |
| 123 | if res: |
123 | if res: |
| 124 | GLIUtility.spawn("echo " + res.group(1) + " >> " + self._chroot_dir + "/var/lib/portage/world") |
124 | GLIUtility.spawn("echo " + res.group(1) + " >> " + self._chroot_dir + "/var/lib/portage/world") |
| 125 | |
125 | |
| 126 | def get_best_version_vdb(self, package): |
126 | def get_best_version_vdb(self, package): |
| 127 | return GLIUtility.spawn("portageq best_version / " + package, return_output=True)[1].strip() |
127 | return GLIUtility.spawn("portageq best_version / " + package, return_output=True)[1].strip() |
| 128 | |
128 | |
| 129 | def get_best_version_vdb_chroot(self, package): |
129 | def get_best_version_vdb_chroot(self, package): |
| 130 | return GLIUtility.spawn("portageq best_version " + self._chroot_dir + " " + package, return_output=True)[1].strip() |
130 | return GLIUtility.spawn("portageq best_version / " + package, chroot=self._chroot_dir, return_output=True)[1].strip() |
| 131 | |
131 | |
| 132 | # def get_best_version_tree(self, package): |
132 | # def get_best_version_tree(self, package): |
| 133 | # return portage.best(tree.match(package)) |
133 | # return portage.best(tree.match(package)) |