* Add --repository parameter to "pisi upgrade"

* Change short param -r to -b for bypass-repo-update

BUG:FIXED:6157
This commit is contained in:
Faik Uygur
2009-02-04 15:40:25 +00:00
parent 01c19c8694
commit da8fed6342
2 changed files with 16 additions and 10 deletions
+9 -6
View File
@@ -58,7 +58,7 @@ expanded to package names.
help=_("Do not take build no into account.")) help=_("Do not take build no into account."))
group.add_option("--security-only", action="store_true", group.add_option("--security-only", action="store_true",
default=False, help=_("Security related package upgrades only")) default=False, help=_("Security related package upgrades only"))
group.add_option("-r", "--bypass-update-repo", action="store_true", group.add_option("-b", "--bypass-update-repo", action="store_true",
default=False, help=_("Do not update repositories")) default=False, help=_("Do not update repositories"))
group.add_option("--ignore-file-conflicts", action="store_true", group.add_option("--ignore-file-conflicts", action="store_true",
default=False, help=_("Ignore file conflicts")) default=False, help=_("Ignore file conflicts"))
@@ -66,6 +66,8 @@ expanded to package names.
default=False, help=_("Ignore package conflicts")) default=False, help=_("Ignore package conflicts"))
group.add_option("-c", "--component", action="append", group.add_option("-c", "--component", action="append",
default=None, help=_("Upgrade component's and recursive components' packages")) default=None, help=_("Upgrade component's and recursive components' packages"))
group.add_option("-r", "--repository", action="store",
type="string", default=None, help=_('Name of the to be upgraded packages\' repository'))
group.add_option("-f", "--fetch-only", action="store_true", group.add_option("-f", "--fetch-only", action="store_true",
default=False, help=_("Fetch upgrades but do not install.")) default=False, help=_("Fetch upgrades but do not install."))
group.add_option("-x", "--exclude", action="append", group.add_option("-x", "--exclude", action="append",
@@ -90,17 +92,18 @@ expanded to package names.
else: else:
ctx.ui.info(_('Will not update repositories')) ctx.ui.info(_('Will not update repositories'))
repository = ctx.get_option('repository')
components = ctx.get_option('component') components = ctx.get_option('component')
packages = [] packages = []
if components: if components:
for name in components: for name in components:
if self.componentdb.has_component(name): if self.componentdb.has_component(name):
packages.extend(self.componentdb.get_union_packages(name, walk=True)) if repository:
packages.extend(self.componentdb.get_packages(name, walk=True, repo=repository))
else:
packages.extend(self.componentdb.get_union_packages(name, walk=True))
packages.extend(self.args) packages.extend(self.args)
if packages == []:
packages = pisi.api.list_installed()
packages = pisi.blacklist.exclude_from(packages, ctx.const.blacklist) packages = pisi.blacklist.exclude_from(packages, ctx.const.blacklist)
if ctx.get_option('exclude_from'): if ctx.get_option('exclude_from'):
@@ -109,4 +112,4 @@ expanded to package names.
if ctx.get_option('exclude'): if ctx.get_option('exclude'):
packages = pisi.blacklist.exclude(packages, ctx.get_option('exclude')) packages = pisi.blacklist.exclude(packages, ctx.get_option('exclude'))
pisi.api.upgrade(packages) pisi.api.upgrade(packages, repository)
+7 -4
View File
@@ -26,8 +26,8 @@ import pisi.util as util
import pisi.dependency as dependency import pisi.dependency as dependency
import pisi.db import pisi.db
def upgrade(A): def upgrade(A, repo=None):
upgrade_pkg_names(A) upgrade_pkg_names(A, repo)
def find_upgrades(packages, replaces): def find_upgrades(packages, replaces):
packagedb = pisi.db.packagedb.PackageDB() packagedb = pisi.db.packagedb.PackageDB()
@@ -89,18 +89,21 @@ def find_upgrades(packages, replaces):
return Ap return Ap
def upgrade_pkg_names(A = []): def upgrade_pkg_names(A = [], repo=None):
"""Re-installs packages from the repository, trying to perform """Re-installs packages from the repository, trying to perform
a minimum or maximum number of upgrades according to options.""" a minimum or maximum number of upgrades according to options."""
packagedb = pisi.db.packagedb.PackageDB() packagedb = pisi.db.packagedb.PackageDB()
installdb = pisi.db.installdb.InstallDB() installdb = pisi.db.installdb.InstallDB()
replaces = packagedb.get_replaces() replaces = packagedb.get_replaces()
if not A: if not A:
# if A is empty, then upgrade all packages # if A is empty, then upgrade all packages
A = installdb.list_installed() A = installdb.list_installed()
if repo:
repo_packages = set(packagedb.list_packages(repo))
A = set(A).intersection(repo_packages)
A_0 = A = set(A) A_0 = A = set(A)
Ap = find_upgrades(A, replaces) Ap = find_upgrades(A, replaces)
A = set(Ap) A = set(Ap)