fix: address basestrap findings (format safety, umask removal, non-list guard)
This commit is contained in:
@@ -63,24 +63,22 @@ def pretty_status_message():
|
|||||||
return custom_status_message
|
return custom_status_message
|
||||||
if not group_packages:
|
if not group_packages:
|
||||||
if (total_packages > 0):
|
if (total_packages > 0):
|
||||||
# Outside the context of an operation
|
return _("Processing packages (%(count)d / %(total)d)") % {
|
||||||
s = _("Processing packages (%(count)d / %(total)d)")
|
|
||||||
else:
|
|
||||||
s = _("Install packages.")
|
|
||||||
|
|
||||||
elif mode_packages is INSTALL:
|
|
||||||
s = _n("Installing one package.",
|
|
||||||
"Installing %(num)d packages.", group_packages)
|
|
||||||
elif mode_packages is REMOVE:
|
|
||||||
s = _n("Removing one package.",
|
|
||||||
"Removing %(num)d packages.", group_packages)
|
|
||||||
else:
|
|
||||||
# No mode, generic description
|
|
||||||
s = _("Install packages.")
|
|
||||||
|
|
||||||
return s % {"num": group_packages,
|
|
||||||
"count": completed_packages,
|
"count": completed_packages,
|
||||||
"total": total_packages}
|
"total": total_packages}
|
||||||
|
else:
|
||||||
|
return _("Install packages.")
|
||||||
|
|
||||||
|
elif mode_packages is INSTALL:
|
||||||
|
return _n("Installing one package.",
|
||||||
|
"Installing %(num)d packages.", group_packages) % {
|
||||||
|
"num": group_packages}
|
||||||
|
elif mode_packages is REMOVE:
|
||||||
|
return _n("Removing one package.",
|
||||||
|
"Removing %(num)d packages.", group_packages) % {
|
||||||
|
"num": group_packages}
|
||||||
|
else:
|
||||||
|
return _("Install packages.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -378,20 +376,17 @@ class PMPacman(PackageManager):
|
|||||||
return args
|
return args
|
||||||
|
|
||||||
def setup_requirements(self, rootdir):
|
def setup_requirements(self, rootdir):
|
||||||
cal_umask = os.umask(0)
|
for target in self.pacman_requirements:
|
||||||
try:
|
dest = rootdir + target["dest"]
|
||||||
for target in self.pacman_requirements:
|
if not os.path.exists(dest):
|
||||||
dest = rootdir + target["dest"]
|
mod = int(target["mode"],8)
|
||||||
if not os.path.exists(dest):
|
os.mkdir(dest)
|
||||||
mod = int(target["mode"],8)
|
os.chmod(dest, mod)
|
||||||
os.mkdir(dest, mode=mod)
|
libcalamares.utils.debug("Mode: {!s}".format(oct(mod)))
|
||||||
libcalamares.utils.debug("Mode: {!s}".format(oct(mod)))
|
libcalamares.utils.debug("Created: {!s}".format(dest))
|
||||||
libcalamares.utils.debug("Created: {!s}".format(dest))
|
|
||||||
|
|
||||||
path = join(rootdir, "run")
|
path = join(rootdir, "run")
|
||||||
os.chmod(path, 0o755)
|
os.chmod(path, 0o755)
|
||||||
finally:
|
|
||||||
os.umask(cal_umask)
|
|
||||||
|
|
||||||
def copy_file(self, rootdir, f):
|
def copy_file(self, rootdir, f):
|
||||||
if os.path.exists(join("/",f)):
|
if os.path.exists(join("/",f)):
|
||||||
@@ -554,7 +549,8 @@ def run():
|
|||||||
completed_packages = 0
|
completed_packages = 0
|
||||||
for op in operations:
|
for op in operations:
|
||||||
for packagelist in op.values():
|
for packagelist in op.values():
|
||||||
total_packages += len(subst_locale(packagelist))
|
if isinstance(packagelist, list):
|
||||||
|
total_packages += len(subst_locale(packagelist))
|
||||||
|
|
||||||
if not total_packages:
|
if not total_packages:
|
||||||
# Avoids potential divide-by-zero in progress reporting
|
# Avoids potential divide-by-zero in progress reporting
|
||||||
|
|||||||
Reference in New Issue
Block a user