Add migrate to git portage actions.

develop
Mike Hiretsky 13 years ago
parent cc1b3e942e
commit 99fee013b8

@ -25,7 +25,8 @@ from os import path
from cl_template import template,iniParser
from cl_utils import process,pathJoin,getRunCommands,getTupleVersion,isMount,\
isFstabMount,childMounts,_toUNICODE,cmpVersion, \
listDirectory, readFile, removeDir, isPkgInstalled
listDirectory, readFile, removeDir, getPkgInstalled, \
getTupleVersion, isPkgInstalled
from subprocess import STDOUT,PIPE
from cl_print import color_print
from cl_datavars import DataVars
@ -520,7 +521,7 @@ class cl_assemble(color_print):
def _migratePortage(self):
if self.clVars.Get('cl_assemble_branch'):
if not isPkgInstalled('dev-vcs/git',prefix=self.assemblePath):
if not isPkgInstalled('dev-vcs/git'):
self.printMessageForTest(_("Installing %s")%'dev-vcs/git')
self.runChroot("emerge -1 git")
portagePath = pathJoin(self.assemblePath,'usr/portage')
@ -533,7 +534,8 @@ class cl_assemble(color_print):
self.printMessageForTest(_("Fetching portages"))
if not gitUrl or \
gitUrl.group(1).strip() != self.clVars.Get('cl_assemble_sync'):
removeDir(portagePath)
if path.exists(portagePath):
removeDir(portagePath)
getPortage = "git clone --depth 1 -n {gitrep} {portage}".format(
gitrep=self.clVars.Get('cl_assemble_sync'),
portage='/usr/portage')
@ -547,6 +549,22 @@ class cl_assemble(color_print):
portage='/usr/portage',
branch=self.clVars.Get('cl_assemble_branch'))
self.runChroot(updateBranch)
portagePkg = getPkgInstalled('sys-apps/portage',
prefix=self.assemblePath)
portageMinVer = getTupleVersion('2.2.0_alpha72')
if portagePkg and \
getTupleVersion(portagePkg[0]['PVR']) < portageMinVer:
self.printMessageForTest(_("Installing %s")%"portage")
emergePortage = \
'ebuild /usr/portage/sys-apps/portage/portage-9999.ebuild manifest'
self.runChroot(emergePortage)
emergePortage = \
'ACCEPT_KEYWORDS="**" emerge \\<sys-apps/portage-9999'
self.runChroot(emergePortage)
restoreManifest = \
'cd /usr/portage;git checkout sys-apps'
self.runChroot(restoreManifest)
else:
portagePath = pathJoin(self.assemblePath,'usr/portage')
gitConfig = pathJoin(portagePath, '.git/config')
@ -570,6 +588,11 @@ class cl_assemble(color_print):
else:
self.runChroot("layman -L")
self.runChroot("layman -a calculate")
if self.clVars.Get('cl_assemble_branch'):
updateBranch= "cd {portage};git checkout {branch}".format(
portage='/var/lib/layman/calculate',
branch=self.clVars.Get('cl_assemble_branch'))
self.runChroot(updateBranch)
def _updateMan(self):
"""Remove man, install man-db"""

Loading…
Cancel
Save