home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
boot
/
i386
/
root
/
usr
/
share
/
YaST2
/
clients
/
bootloader.ycp
< prev
next >
Wrap
Text File
|
2006-11-29
|
7KB
|
269 lines
/**
* File:
* bootloader.ycp
*
* Module:
* Bootloader installation and configuration
*
* Summary:
* Main file of bootloader configuration
*
* Authors:
* Jiri Srain <jsrain@suse.cz>
*
* $Id: bootloader.ycp 24999 2005-08-17 11:15:06Z jsrain $
*
*/
{
textdomain "bootloader";
import "BootCommon";
import "Bootloader";
import "CommandLine";
import "Mode";
import "RichText";
include "bootloader/routines/wizards.ycp";
// --------------------------------------------------------------------------
// --------------------------------- cmd-line handlers
/**
* CommandLine handler for running GUI
* @return boolean true if settings were saved
*/
define boolean GuiHandler () ``{
symbol ret = nil;
ret = BootloaderSequence ();
if (ret == `abort || ret == `back || ret == `nil)
return false;
return true;
}
/**
* Print summary of basic options
* @param options a list of parameters passed as args
* @return boolean false
*/
define boolean BootloaderSummaryHandler (map options ) ``{
CommandLine::Print (RichText::Rich2Plain(
"<br>"+mergestring (Bootloader::Summary (), "<br>")));
return false; // do not call Write...
}
/**
* Modify the boot laoder section
* @param section string the section name
* @param key string the key to modify
* @param value string the value to set
* @return boolean true on success
*/
define boolean BootloaderModifySection (string section,
string key, string value)
``{
if (section == nil)
{
BootCommon::globals[key] = value;
return true;
}
else
{
integer index = BootCommon::getSectionIndex (section);
if (index != nil)
{
BootCommon::sections[index, key] = value;
return true;
}
else
{
// command line error report, %1 is section name
CommandLine::Print (sformat (_("Section %1 not found."),
section));
return false;
}
}
return false;
}
/**
* Set specified option in specified section
* @param options a list of parameters passed as args
* @return boolean true on success
*/
define boolean BootloaderSetHandler (map options) ``{
string section = (string)(options["section"]:nil);
string option = (string)(options["option"]:nil);
any value = options["value"]:nil;
if (value == nil)
{
// command line error report
CommandLine::Print (_("Value was not specified."));
return false;
}
return BootloaderModifySection (section, option, (string)value);
}
/**
* Delete specified option in specified section
* @param options a list of parameters passed as args
* @return boolean true on success
*/
define boolean BootloaderDeleteHandler (map options) ``{
string section = (string)(options["section"]:nil);
if (! haskey (options, "option"))
{
integer index = BootCommon::getSectionIndex (section);
if (index == nil)
{
// command line error report, %1 is section name
CommandLine::Print (sformat (_("Section %1 not found."),
section));
return false;
}
BootCommon::sections[index] = nil;
BootCommon::sections = filter (map<string,any> s, BootCommon::sections, ``(
s != nil
));
return true;
}
string option = (string)(options["option"]:nil);
return BootloaderModifySection (section, option, nil);
}
/**
* Add a new bootloader section with specified name
* @param options a list of parameters passed as args
* @return boolean true on success
*/
define boolean BootloaderAddHandler (map options) ``{
string section = (string)(options["section"]:nil);
if (section == nil)
{
// command line error report
CommandLine::Print (_("Section name must be specified."));
return false;
}
BootCommon::sections = add (BootCommon::sections,
$[
"name" : section
]);
}
/**
* Print the value of specified option of specified section
* @param options a list of parameters passed as args
* @return boolean true on success
*/
define boolean BootloaderPrintHandler (map options) ``{
string section = (string)(options["section"]:nil);
string option = (string)(options["option"]:nil);
if (option == nil)
{
// command line error report
CommandLine::Print (_("Option was not specified."));
return false;
}
any value = nil;
if (section == nil)
{
value = BootCommon::globals[option]:nil;
}
else
{
integer index = BootCommon::getSectionIndex (section);
if (index != nil)
{
value = BootCommon::sections[index,option]:nil;
}
}
if (value == nil)
// command line error report
CommandLine::Print (_("Specified option does not exist."));
else
// command line, %1 is the value of bootloader option
CommandLine::Print (sformat (_("Value: %1"), value));
return false;
}
/* the command line description map */
map cmdline = $[
"id" : "bootloader",
// command line help text for Bootloader module
"help" : _("Boot loader configuration module"),
"guihandler" : GuiHandler,
"initialize" : Bootloader::Read,
"finish" : Bootloader::Write,
"actions" : $[
"summary" : $[
"handler" : BootloaderSummaryHandler,
// command line help text for summary action
"help" : _("Configuration summary of boot loader")
],
"delete" : $[
"handler" : BootloaderDeleteHandler,
// command line help text for delete action
"help" : _("Delete a global option or option of a section"),
],
"set" : $[
"handler" : BootloaderSetHandler,
// command line help text for set action
"help" : _("Set a global option or option of a section"),
],
"add" : $[
"handler" : BootloaderAddHandler,
// command line help text for add action
"help" : _("Add a new section"),
],
"print" : $[
"handler" : BootloaderPrintHandler,
// command line help text for print action
"help" : _("Print value of specified option"),
],
],
"options" : $[
"section" : $[
// command line help text for an option
"help" : _("The name of the section"),
"type" : "string",
],
"option" : $[
// command line help text for an option
"help" : _("The key of the option"),
"type" : "string",
],
"value" : $[
// command line help text for an option
"help" : _("The value of the option"),
"type" : "string",
],
],
"mappings" : $[
"summary" : [],
"delete" : [ "section", "option" ],
"set" : [ "section", "option", "value" ],
"add" : [ "section" ],
"print" : [ "section", "option" ],
],
];
y2milestone ("Starting bootloader configuration module");
boolean skip_io = false;
integer i = 0;
while (i < size ((list)WFM::Args()))
{
if (.noio == WFM::Args (i) || ".noio" == WFM::Args (i))
{
skip_io = true;
BootCommon::save_on_finish = false;
}
i = i + 1;
}
any ret = CommandLine::Run (cmdline);
// boolean ret = GuiHandler ();
y2milestone ("Finishing bootloader configuration module");
return ret;
}