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 / runlevel_finish.ycp < prev    next >
Encoding:
Text File  |  2006-11-29  |  1.7 KB  |  89 lines

  1. /**
  2.  * File:
  3.  *  runlevel_finish.ycp
  4.  *
  5.  * Module:
  6.  *  Step of base installation finish
  7.  *
  8.  * Authors:
  9.  *  Jiri Srain <jsrain@suse.cz>
  10.  *
  11.  * $Id: runlevel_finish.ycp 27936 2006-02-13 20:01:14Z olh $
  12.  *
  13.  */
  14.  
  15. {
  16.  
  17. textdomain "runlevel";
  18.  
  19. import "Mode";
  20. import "RunlevelEd";
  21. import "Directory";
  22. import "Update";
  23.  
  24. any ret = nil;
  25. string func = "";
  26. map param = $[];
  27.  
  28. void set_runlevel (integer runlevel)
  29. {
  30.     y2milestone ("setting default runlevel to %1", runlevel);
  31.     SCR::Write (.etc.inittab.id, sformat ("%1:initdefault:", runlevel));
  32.     SCR::Write (.etc.inittab, nil);
  33. }
  34.  
  35.  
  36. /* Check arguments */
  37. if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
  38.     func = (string)WFM::Args(0);
  39.     if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
  40.     param = (map)WFM::Args(1);
  41. }
  42.  
  43. y2milestone ("starting runlevel_finish");
  44. y2debug("func=%1", func);
  45. y2debug("param=%1", param);
  46.  
  47. if (func == "Info")
  48. {
  49.     return (any)$[
  50.     "steps" : 1,
  51.     // progress step title
  52.     "title" : _("Saving default runlevel..."),
  53.     "when" : [ `installation, `update, `autoinst ],
  54.     ];
  55. }
  56. else if (func == "Write")
  57. {
  58.     if ( !Mode::update () )
  59.     {
  60.     // see bug #32366 why we need this here
  61.     // and 30028
  62.     // now it is set in the initial proposal
  63.     // Fall back to 3 if we accidentally don't set it there
  64.     // otherwise it would be 0 (#35662)
  65.     set_runlevel (RunlevelEd::default_runlevel == ""?
  66.               3 : tointeger (RunlevelEd::default_runlevel));
  67.     }
  68.     else
  69.     {
  70.     // Set default runlevel cause inittab will be overwritten by
  71.     // installing aaa_base
  72.  
  73.     set_runlevel (Update::last_runlevel != -1 ? Update::last_runlevel : 3);
  74.     }
  75.  
  76. }
  77. else
  78. {
  79.     y2error ("unknown function: %1", func);
  80.     ret = nil;
  81. }
  82.  
  83. y2debug("ret=%1", ret);
  84. y2milestone("runlevel_finish finished");
  85. return ret;
  86.  
  87.  
  88. } /* EOF */
  89.