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 / modules / OSRMode.ycp < prev    next >
Text File  |  2006-11-29  |  4KB  |  148 lines

  1. /**
  2.  * File:    OSRMode.ycp
  3.  * Module:    repair
  4.  * Summary:    Special OSR mode
  5.  * Authors:    Johannes Buchhold <jbuch@suse.de>
  6.  *
  7.  * $Id: OSRMode.ycp 23769 2005-06-21 12:18:10Z jsuchome $
  8.  *
  9.  * Provide osr mode information.
  10.  */
  11.  
  12. {
  13.     module "OSRMode";
  14.  
  15.     import "Mode";
  16.     import "OSRLogFile";
  17.     import "Stage";
  18.     import "Report";
  19.  
  20.     textdomain "repair";
  21.  
  22.     /**
  23.      * Automatic detection and repair, no user-interaction but GUI.
  24.      */
  25.     global boolean automatic    = false;
  26.  
  27.     /**
  28.      * No real error-detection or repair, only demonstration, GUI.
  29.      */
  30.     global boolean demo        = false;
  31.  
  32.     /**
  33.      *  Only detection, no repair, GUI.
  34.      */
  35.     global boolean detection    = false;
  36.  
  37.     /**
  38.      *  No GUI, no user-interaction, input-values come from a map.
  39.      */
  40.     global boolean script    = false;
  41.  
  42.     /**
  43.      * Prints the values provided by the detection-modules to the
  44.      */
  45.     global boolean provides      = false;
  46.  
  47.     global boolean save          = false;
  48.  
  49.     /**
  50.      * Get the execution-mode, description:
  51.      * Stage::initial ()  == true -> Initial boot per CD-Rom or NFS
  52.      * Stage::cont ()     == true -> Continue installation
  53.      * Stage::initial ()e == false) && (Stage::cont () == false) -> Running Linux-system
  54.      */
  55.     global define boolean IsValid() {
  56.  
  57.     if (!Stage::initial () && !Stage::cont () )
  58.     {
  59.         y2milestone("Starting the rescue-system from the running Linux-system!");
  60.         OSRLogFile::Add("Starting the rescue-system from the running Linux-system!\n");
  61.     }
  62.     else if (Stage::initial () && !Stage::cont ())
  63.     {
  64.         y2milestone("Starting the rescue-system directly after boot from cdrom or per nfs");
  65.         OSRLogFile::Add("Starting the rescue-system directly after boot from cdrom or per nfs\n");
  66.     }
  67.     else if (!Stage::initial () && Stage::cont ())
  68.     {
  69.         y2milestone("NOT starting the rescue-system! Continue installation first!");
  70.         OSRLogFile::Add("NOT starting the rescue-system! Continue installation first!\n");
  71.  
  72.         // error popup
  73.         Report::Error(_("
  74. Finish installation before
  75. starting the repair system.
  76.  
  77. Halting the repair system.
  78. "));
  79.         return false;
  80.     }
  81.     else
  82.     {
  83.         y2warning("Something's wrong: initial_mode == %1 and continue_mode == %2, but cannot both be true!",
  84.               Stage::initial (), Stage::cont ());
  85.     }
  86.     return true;
  87.     }
  88.  
  89.     //---------------------------------------------------------------
  90.     // init function, return value is true if some mode was set
  91.     global define boolean Init () {
  92.  
  93.     boolean ret    = false;
  94.     integer arg_count = size(WFM::Args());
  95.     integer arg_no = 0;
  96.  
  97.     if ( size(WFM::Args()) > 1 )
  98.     {
  99.         y2error("Too many arguments: size(%1) == %2, no more than one allowed.",
  100.             WFM::Args(), size(WFM::Args()) );
  101.     }
  102.     else
  103.     {
  104.         while ( arg_no < size(WFM::Args()) )
  105.         {
  106.         y2debug("option #%1: %2", arg_no, WFM::Args(arg_no) );
  107.  
  108.         if ( WFM::Args(arg_no) == "automatic" )
  109.         {
  110.             automatic    = true;
  111.             ret        = true;
  112.             OSRLogFile::Add("Running in automatic mode.\n");
  113.         }
  114.         else if ( WFM::Args(arg_no) ==  "provides" )
  115.         {
  116.             provides    = true;
  117.             ret        = true;
  118.             OSRLogFile::Add("Running in automatic mode.\n");
  119.         }
  120.         else if ( WFM::Args(arg_no) == "detection" ||  WFM::Args(arg_no) == "detect"  )
  121.         {
  122.             detection    = true;
  123.             ret        = true;
  124.             OSRLogFile::Add("Running in detection mode.\n");
  125.         }
  126.         else if ( WFM::Args(arg_no) == "script" )
  127.         {
  128.             script    = true;
  129.             ret        = true;
  130.             OSRLogFile::Add("Running in script mode.\n");
  131.         }
  132.         else if ( WFM::Args(arg_no) == "save" )
  133.         {
  134.             y2milestone("Save mode");
  135.             save    = true;
  136.             ret        = true;
  137.         }
  138.         else
  139.         {
  140.             y2error("Unknown option %1.", WFM::Args(arg_no) );
  141.         }
  142.         arg_no = arg_no + 1;
  143.         }
  144.     }
  145.     return ret;
  146.     }
  147. }
  148.