Исправлено название обновления меню

parent 38c29acd63
commit c1034ee4f9

@ -22,9 +22,11 @@ import time
import stat
from calculate.core.server.gen_pid import search_worked_process2
from calculate.core.setup_package import ChainProgressTemplate
from calculate.lib.datavars import DataVars
from calculate.lib.cl_template import templateFunction
from calculate.lib.datavars import DataVars, Variable
from calculate.lib.utils.colortext import (TextState, get_color_print,
convert_console_to_xml)
convert_console_to_xml)
from calculate.lib.utils.common import CmdlineParams
from calculate.lib.utils.files import (
pathJoin, PercentProgress, getProgPath, process, STDOUT, removeDir,
makeDirectory, writeFile, readLinesFile, chmod, chown, FilePermission,
@ -1207,28 +1209,54 @@ class Builder(Update):
self.printWARNING(str(e))
return True
def _get_default_params(self, drvs):
"""
Получить параметры загрузки для системы LiveHDD
"""
proprietary = ["nvidia", "fglrx"]
video = self.clVars.Get('cl_builder_x11_video_drv')
locale = self.clVars.Get('cl_builder_locale_lang')
timezone = self.clVars.Get('cl_builder_timezone')
params = ["%s:%s" % (CmdlineParams.Locale, locale),
"%s:%s" % (CmdlineParams.Timezone, timezone)]
resolution = self.clVars.Get('cl_builder_x11_resolution')
if resolution and resolution != "auto":
params.append("%s:%s" % (CmdlineParams.Resolution, resolution))
if video != "default" and (
video not in proprietary or Variable.isTrue(drvs)):
params.append("%s:%s" % (CmdlineParams.Video, video))
current_video = self.clVars.Get('os_x11_video_drv')
if current_video == video and video != "default":
composite = self.clVars.Get('cl_builder_x11_composite')
params.append("%s:%s" % (CmdlineParams.Composite, composite))
return ",".join(params)
def create_iso_grub_cfg(self, dn):
gc = GrubCommand()
content = []
for label, iso, splash in self.clVars.ZipVars(
for label, iso, splash, drvs in self.clVars.ZipVars(
'cl_builder_image_label',
'cl_builder_image_iso',
'cl_builder_image_splash'):
'cl_builder_image_splash',
'cl_builder_image_drivers'):
default_params = self._get_default_params(drvs)
entry = (
"menuentry '%(label)s' {\n"
"\tset isofile=%(iso)s\n"
"\tloopback loop $isofile\n"
"\tlinux (loop)/boot/vmlinuz root=live "
"iso-scan/filename=$isofile quiet %(splash)s\n"
"iso-scan/filename=$isofile quiet %(splash)s "
"calculate=%(defs)s\n"
"\tinitrd (loop)/boot/initrd\n}\n\n" % {
'label': label,
'iso': gc.get_relpath(iso),
'splash': 'splash=silent,theme:calculate console=tty1'
'splash': templateFunction.splash_cmd(splash),
'defs': default_params
})
content.append(entry)
fn_grubcfg = path.join(dn, 'grub.cfg')
try:
write_content = ("\n".join(content)).strip()+"\n"
write_content = ("\n".join(content)).strip() + "\n"
if write_content.strip():
with writeFile(fn_grubcfg) as f:
f.write(write_content)
@ -1245,7 +1273,7 @@ class Builder(Update):
try:
os.unlink(cfg_fn)
except OSError:
raise BuilderError(_("Failed to remove %s")%cfg_fn)
raise BuilderError(_("Failed to remove %s") % cfg_fn)
return True
def setup_package(self, package):

@ -22,8 +22,9 @@ from calculate.lib.variables.linux import LinuxDataVars
from calculate.install.distr import IsoDistributive, DistributiveError
from calculate.lib.utils.files import listDirectory
from calculate.lib.datavars import ReadonlyVariable, HumanReadable, \
ReadonlyTableVariable, FieldValue, VariableError, Variable
from calculate.install.variables import system
ReadonlyTableVariable, FieldValue, VariableError, Variable, \
VariableInterface
from calculate.install.variables import system, X11, locale
import builder
from action import Actions
@ -277,3 +278,63 @@ class VariableClBuilderImageSplash(FieldValue, ReadonlyVariable):
type = "list"
source_variable = "cl_builder_image_data"
column = 9
class GrubOptionVariable(VariableInterface):
"""
Опции для настроек grub LiveHDD
"""
def uncompatible(self):
typemenu = self.Get('cl_builder_livemenu_type')
if typemenu == "flash":
return _("Unavailable for the USB Flash")
class VariableClBuilderX11VideoDrv(GrubOptionVariable,
X11.VariableOsInstallX11VideoDrv):
"""
Выбор видеодрайвера для LiveHDD
"""
type = "choice"
def get(self):
return self.Get('os_x11_video_drv')
def check(self, value):
pass
def choice(self):
values = (X11.VariableOsInstallX11VideoAvailable.supported +
[self.default_video])
return map(lambda x: (x, self.driver_names.get(x, x)), values)
class VariableClBuilderLocaleLang(GrubOptionVariable,
locale.VariableOsInstallLocaleLang):
pass
class VariableClBuilderTimezone(GrubOptionVariable,
locale.VariableOsInstallClockTimezone):
"""
Выбор часового пояса
"""
locale_varname = "builder.cl_builder_locale_lang"
class VariableClBuilderX11Resolution(GrubOptionVariable,
X11.VariableOsInstallX11Resolution):
def choice(self):
values = super(VariableClBuilderX11Resolution, self).choice()
return [("auto", _("Auto"))] + [(x, x) for x in values]
def check(self, value):
if value != "auto":
super(VariableClBuilderX11Resolution, self).check(value)
class VariableClBuilderX11Composite(GrubOptionVariable,
X11.VariableOsInstallX11Composite):
def get(self):
return self.Get('os_x11_composite')

@ -33,6 +33,7 @@ from utils.cl_builder_update import ClBuilderUpdateAction
from utils.cl_builder_restore import ClBuilderRestoreAction
from utils.cl_builder_image import ClBuilderImageAction
from utils.cl_builder_menu import ClBuilderMenuAction
from calculate.builder.variables.action import Actions
_ = lambda x: x
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
@ -205,15 +206,15 @@ class Wsdl(WsdlBase):
# идентификатор метода
'method_name': Builder.Method.UpdateMenu,
# категория метода
'category': __('Update'),
'category': __("Configuration"),
# заголовок метода
'title': __("Update Live-Menu"),
'title': __("Configure a Live-Menu"),
# иконка для графической консоли
'image': 'format-indent-less-rtl,format-indent-more',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
'command': 'cl-update-boot-live',
'command': 'cl-setup-boot-live',
# права для запуска метода
'rights': ['build'],
# объект содержащий модули для действия
@ -233,6 +234,13 @@ class Wsdl(WsdlBase):
normal=(
'cl_builder_livemenu_type',
'cl_builder_livemenu_path',),
expert=(
'cl_builder_locale_lang',
'cl_builder_timezone',
'cl_builder_x11_video_drv',
'cl_builder_x11_resolution',
'cl_builder_x11_composite',
),
next_label=_("Perform"))],
'brief': {'next': __("Perform"),
'name': __("Update Live-Menu")},

Loading…
Cancel
Save