ACC SHELL
/**
* File:
* runlevel_finish.ycp
*
* Module:
* Step of base installation finish
*
* Authors:
* Jiri Srain <jsrain@suse.cz>
*
* $Id: runlevel_finish.ycp 47096 2008-04-28 10:34:38Z jsrain $
*
*/
{
textdomain "runlevel";
import "Mode";
import "RunlevelEd";
import "Directory";
any ret = nil;
string func = "";
map param = $[];
void set_runlevel (integer runlevel)
{
y2milestone ("setting default runlevel to %1", runlevel);
SCR::Write (.etc.inittab.id, sformat ("%1:initdefault:", runlevel));
SCR::Write (.etc.inittab, nil);
}
/* Check arguments */
if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
func = (string)WFM::Args(0);
if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
param = (map)WFM::Args(1);
}
y2milestone ("starting runlevel_finish");
y2debug("func=%1", func);
y2debug("param=%1", param);
if (func == "Info")
{
return (any)$[
"steps" : 1,
// progress step title
"title" : _("Saving default runlevel..."),
"when" : [ `installation, `live_installation, `update, `autoinst ],
];
}
else if (func == "Write")
{
if ( !Mode::update () )
{
// see bug #32366 why we need this here
// and 30028
// now it is set in the initial proposal
// Fall back to 3 if we accidentally don't set it there
// otherwise it would be 0 (#35662)
set_runlevel (RunlevelEd::default_runlevel == ""?
3 : tointeger (RunlevelEd::default_runlevel));
}
else
{
y2milestone ("Update mode, no need to set runlevel again...");
}
}
else
{
y2error ("unknown function: %1", func);
ret = nil;
}
y2debug("ret=%1", ret);
y2milestone("runlevel_finish finished");
return ret;
} /* EOF */
ACC SHELL 2018