equo: implement new command 'equo hop' which substitutes 'equo world

--upgrade <branch>'
This commit is contained in:
Fabio Erculiani
2009-04-17 23:47:33 +02:00
parent 5487696276
commit 36537f39a0
2 changed files with 61 additions and 1 deletions
+4 -1
View File
@@ -94,6 +94,8 @@ myopts = [
(2,'--showrepo',1,_('print repository information (w/--quiet)')),
(2,'--showdesc',1,_('print description too (w/--quiet)')),
None,
(1,'hop <branch>',1,_('upgrade your distribution to a new release (branch)')),
None,
(1,'world',2,_('update system with the latest available packages')),
(2,'--ask',2,_('ask before making any changes')),
(2,'--fetch',2,_('just download packages')),
@@ -503,8 +505,9 @@ try:
import text_ui
rc = text_ui.package(options)
if options[0] not in ("hop",):
load_conf_cache()
text_ui.Equo.destroy()
load_conf_cache()
elif options[0] == "security":
import text_security
+57
View File
@@ -149,6 +149,13 @@ def package(options):
dochecksum = equoRequestChecksum,
multifetch = equoRequestMultifetch)
elif (options[0] == "hop"):
if myopts:
status, rc = branchHop(myopts[0])
else:
print_error(red(" %s." % (_("Nothing to do"),) ))
rc = 127
elif (options[0] == "remove"):
if myopts or equoRequestResume:
status, rc = removePackages(myopts, deps = equoRequestDeps,
@@ -292,6 +299,56 @@ def worldUpdate(onlyfetch = False, replay = False, resume = False,
return 0,0
def branchHop(branch):
# set the new branch
if branch == Equo.SystemSettings['repositories']['branch']:
mytxt = "%s %s: %s" % (bold(" !!! "),
darkred(_("Already on branch")), purple(branch),)
print_warning(mytxt)
return 1, -1
old_branch = Equo.SystemSettings['repositories']['branch'][:]
Equo.set_branch(branch)
status = True
try:
repoConn = Equo.Repositories([], forceUpdate = False,
fetchSecurity = False)
except PermissionDenied:
mytxt = darkred(_("You must be either root or in the %s group.")) % (
etpConst['sysgroup'],)
print_error("\t"+mytxt)
status = False
except MissingParameter:
print_error(darkred(" * ")+red("%s %s" % (
_("No repositories specified in"), etpConst['repositoriesconf'],)))
status = False
except Exception, e:
print_error(darkred(" @@ ")+red("%s: %s" % (
_("Unhandled exception"), e,)))
status = False
else:
rc = repoConn.sync()
if rc:
status = False
if status:
mytxt = "%s %s: %s" % (red(" @@ "),
darkgreen(_("Succesfully switched to branch")), purple(branch),)
print_info(mytxt)
mytxt = "%s %s" % (brown(" ?? "),
darkgreen(
_("Now run 'equo world' to upgrade your distribution to")),
)
print_info(mytxt)
return 0, 0
else:
Equo.set_branch(old_branch)
mytxt = "%s %s: %s" % (bold(" !!! "),
darkred(_("Unable to switch to branch")), purple(branch),)
print_error(mytxt)
return 1, -2
def _scanPackages(packages, tbz2):
foundAtoms = []