Eray'ı kızdırmayalım, api.py yi temiz tutalım

This commit is contained in:
Faik Uygur
2005-10-30 08:04:26 +00:00
parent 3eb8951ff1
commit 5cae5f996e
2 changed files with 50 additions and 49 deletions
+3 -49
View File
@@ -40,7 +40,7 @@ import pisi.installdb
import pisi.sourcedb import pisi.sourcedb
from pisi.index import Index from pisi.index import Index
import pisi.cli import pisi.cli
from pisi.operations import install, remove, upgrade from pisi.operations import install, remove, upgrade, virtual_install
from pisi.metadata import MetaData from pisi.metadata import MetaData
from pisi.files import Files from pisi.files import Files
@@ -335,53 +335,6 @@ def delete_cache():
util.clean_dir(ctx.config.archives_dir()) util.clean_dir(ctx.config.archives_dir())
util.clean_dir(ctx.config.tmp_dir()) util.clean_dir(ctx.config.tmp_dir())
def __is_virtual_upgrade(metadata):
pkg = metadata.package
(iversion, irelease, ibuild) = ctx.installdb.get_version(pkg.name)
upgrade = False
if pkg.version > iversion:
upgrade = True
elif pkg.release > irelease:
upgrade = True
elif (ibuild and pkg.build
and pkg.build > ibuild):
upgrade = True
return upgrade
def __virtual_install(metadata, files):
pkg = metadata.package
# normally this can't be true. Just for backward compatibility
# TODO: for speed only ctx.installdb.install exception can be
# handled but this is much cleaner
if ctx.installdb.is_installed(pkg.name):
if __is_virtual_upgrade(metadata):
ctx.installdb.remove(pkg.name)
packagedb.remove_package(pkg.name)
#FIXME: files ne oluyor?
else:
return
pkginfo = metadata.package
# installdb
ctx.installdb.install(metadata.package.name,
metadata.package.version,
metadata.package.release,
metadata.package.build,
metadata.package.distribution)
# filesdb
ctx.filesdb.add_files(metadata.package.name, files)
# installed packages
packagedb.inst_packagedb.add_package(pkginfo)
def resurrect_package(package_fn): def resurrect_package(package_fn):
"""Resurrect the package in the PiSi databases""" """Resurrect the package in the PiSi databases"""
@@ -407,4 +360,5 @@ def resurrect_package(package_fn):
if files.has_errors(): if files.has_errors():
raise Error, _("Invalid %s") % ctx.const.files_xml raise Error, _("Invalid %s") % ctx.const.files_xml
__virtual_install(metadata, files) virtual_install(metadata, files)
+47
View File
@@ -413,3 +413,50 @@ in the respective order to satisfy dependencies:
atomicoperations.remove_single(x) atomicoperations.remove_single(x)
else: else:
ctx.ui.info(_('Package %s is not installed. Cannot remove.') % x) ctx.ui.info(_('Package %s is not installed. Cannot remove.') % x)
def __is_virtual_upgrade(metadata):
pkg = metadata.package
(iversion, irelease, ibuild) = ctx.installdb.get_version(pkg.name)
upgrade = False
if pkg.version > iversion:
upgrade = True
elif pkg.release > irelease:
upgrade = True
elif (ibuild and pkg.build
and pkg.build > ibuild):
upgrade = True
return upgrade
def virtual_install(metadata, files):
"""Recreate the package info for rebuilddb command"""
pkg = metadata.package
# normally this can't be true. Just for backward compatibility
# TODO: for speed only ctx.installdb.install exception can be
# handled but this is much cleaner
if ctx.installdb.is_installed(pkg.name):
if __is_virtual_upgrade(metadata):
ctx.installdb.remove(pkg.name)
packagedb.remove_package(pkg.name)
#FIXME: files ne oluyor?
else:
return
pkginfo = metadata.package
# installdb
ctx.installdb.install(metadata.package.name,
metadata.package.version,
metadata.package.release,
metadata.package.build,
metadata.package.distribution)
# filesdb
ctx.filesdb.add_files(metadata.package.name, files)
# installed packages
packagedb.inst_packagedb.add_package(pkginfo)