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 / include / bootloader / routines / switcher.ycp < prev    next >
Text File  |  2006-11-29  |  6KB  |  195 lines

  1. /**
  2.  * File:
  3.  *      include/bootloader/routines/switcher.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Functions for choosing proper bootloader-specific functions
  10.  *
  11.  * Authors:
  12.  *      Jiri Srain <jsrain@suse.cz>
  13.  *
  14.  * $Id: switcher.ycp 25285 2005-08-31 06:26:18Z jsrain $
  15.  *
  16.  */
  17.  
  18. {
  19.  
  20. import "BootELILO";
  21. import "BootGRUB";
  22. import "BootLILO";
  23. import "BootPOWERLILO";
  24. import "BootZIPL";
  25. import "BootCommon";
  26.  
  27. //    import "BootMILO";
  28. //    import "BootABOOT";
  29.  
  30.     /**
  31.       * Get map of main functions for bootloader
  32.       * @param bootloader string bootloader name
  33.       * @return map of function
  34.       */
  35.     global define map getFunctions (string bootloader) ``{
  36.     if (bootloader == nil || bootloader == "")
  37.         return $[];
  38.     map bl_functions = $[
  39.         "lilo"  : BootLILO::GetFunctions,
  40.         "grub"  : BootGRUB::GetFunctions,
  41. //        "milo"  : BootMILO::GetFunctions,
  42. //        "aboot" : BootABOOT::GetFunctions,
  43.         "elilo" : BootELILO::GetFunctions,
  44.         "zipl"  : BootZIPL::GetFunctions,
  45.         "ppc"   : BootPOWERLILO::GetFunctions
  46.     ];
  47.     map<string,any> () gf = (map<string,any>())(bl_functions[bootloader]:nil);
  48.     if (gf == nil)
  49.     {
  50.         y2warning ("No bootloader-specific functions specified");
  51.         return $[];
  52.     }
  53.     return gf();
  54.     }
  55.  
  56.     /**
  57.       * Export bootloader-specific settings
  58.       * @return map of settings
  59.       */
  60.     global define map blExport () ``{
  61.         map functions = getFunctions (BootCommon::getLoaderType (false));
  62.         map() toEval = functions["export"]:BootCommon::Export;
  63.         return toEval ();
  64.     }
  65.  
  66.     /**
  67.       * Import settings to bootloader
  68.       * @param settings map of settingss
  69.       * @return boolean true on success
  70.       */
  71.     global define boolean blImport (map settings) ``{
  72.     map functions = getFunctions (BootCommon::getLoaderType (false));
  73.     boolean(map) toEval = functions["import"]:BootCommon::Import;
  74.     return toEval (settings);
  75.     }
  76.  
  77. /**
  78.  * Read bootloader-specific settings
  79.  * @param reread boolean true to force rereading the settings from the disk
  80.  * @return boolean true on success
  81.  */
  82. global define boolean blRead (boolean reread) ``{
  83.     map functions = getFunctions (BootCommon::getLoaderType (false));
  84.     boolean(boolean) toEval = functions["read"]:BootCommon::Read;
  85.     return toEval (reread);
  86. }
  87.  
  88.     /**
  89.       * Reset bootloader-specific settings
  90.       * @param init boolean true if basic initialization of system-dependent
  91.       * settings should be done
  92.       */
  93.     global define void blReset (boolean init) ``{
  94.         map functions = getFunctions (BootCommon::getLoaderType (false));
  95.         void(boolean) toEval = functions["reset"]:BootCommon::Reset;
  96.         toEval (init);
  97.     }
  98.  
  99.     /**
  100.       * Propose bootloader settings
  101.       */
  102.     global define void blPropose () ``{
  103.         map functions = getFunctions (BootCommon::getLoaderType (false));
  104.         void() toEval = functions["propose"]:BootCommon::Propose;
  105.         toEval ();
  106.     }
  107.  
  108. /**
  109.  * Save bootloader cfg. files to the cache of the pluglib
  110.  * @param clean boolean true to perform checks on the settings
  111.  * @param init boolean true to reinitialize the library
  112.  * @param flush boolean true to flush the settings to the disk
  113.  * @return boolean true on success
  114.  */
  115. global boolean blSave (boolean clean, boolean init, boolean flush) {
  116.     map functions = getFunctions (BootCommon::getLoaderType (false));
  117.     boolean(boolean,boolean,boolean) toEval
  118.     = functions["save"]:BootCommon::Save;
  119.     return toEval (clean, init, flush);
  120. }
  121.  
  122.     /**
  123.       * Get cfg. summary
  124.       * @return a list summary items
  125.       */
  126.     global define list<string> blSummary () ``{
  127.         map functions = getFunctions (BootCommon::getLoaderType (false));
  128.         list<string>() toEval = functions["summary"]:BootCommon::Summary;
  129.         return toEval ();
  130.     }
  131.  
  132.     /**
  133.       * Update bootloader-specific settings
  134.       */
  135.     global define void blUpdate () ``{
  136.         map functions = getFunctions (BootCommon::getLoaderType (false));
  137.         void() toEval = functions["update"]:BootCommon::Update;
  138.         toEval ();
  139.     }
  140.  
  141.     /**
  142.       * Do the bootloader installation
  143.       * @return boolean true on success
  144.       */
  145.     global define boolean blWrite () ``{
  146.         map functions = getFunctions (BootCommon::getLoaderType (false));
  147.         boolean() toEval = functions["write"]:BootCommon::Write;
  148.         return toEval ();
  149.     }
  150.  
  151. /**
  152.  * Get description maps of loader-specific widgets
  153.  * @return a map containing description of all loader-specific widgets
  154.  */
  155. global map<string,map<string,any> > blWidgetMaps () {
  156.     map functions = getFunctions (BootCommon::getLoaderType (false));
  157.     map<string,map<string,any> >() toEval = (map<string,map<string,any> >())
  158.     functions["widgets"]:nil;
  159.     if (toEval != nil)
  160.     return toEval ();
  161.     else
  162.     return $[];
  163. }
  164.  
  165. /**
  166.  * Get the main sequence for the specified bootloader
  167.  * @return symbol the result of the sequence, or `generic to run generic
  168.  *  sequence instead
  169.  */
  170. global symbol blMainSequence () {
  171.     map functions = getFunctions (BootCommon::getLoaderType (false));
  172.     symbol () toEval = (symbol ())functions["wizard_sequencer"]:nil;
  173.     if (toEval != nil)
  174.     return toEval ();
  175.     else
  176.     return `generic;
  177. }
  178.  
  179. /**
  180.  * Get the loader-specific dialogs
  181.  * @return a map of loader-specific dialogs
  182.  */
  183. global map<string,symbol()> blDialogs () {
  184.     map functions = getFunctions (BootCommon::getLoaderType (false));
  185.     map<string,symbol()> () toEval = (map<string,symbol()> ())
  186.     functions["dialogs"]:nil;
  187.     if (toEval != nil)
  188.     return toEval ();
  189.     else
  190.     return $[];
  191. }
  192.  
  193.  
  194. } // EOF
  195.