* Add --repository parameter to "pisi upgrade"
* Change short param -r to -b for bypass-repo-update BUG:FIXED:6157
This commit is contained in:
+9
-6
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user