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 / AutoinstGeneral.ycp < prev    next >
Text File  |  2006-11-29  |  9KB  |  271 lines

  1. /**
  2.  * File:    modules/AutoinstGeneral.ycp
  3.  * Package:    Autoyast
  4.  * Summary:    Configuration of general settings for autoyast
  5.  * Authors:    Anas Nashif (nashif@suse.de)
  6.  *
  7.  * $Id: AutoinstGeneral.ycp 33295 2006-10-10 08:03:34Z ug $
  8.  */
  9.  
  10. {
  11.     module "AutoinstGeneral";
  12.     textdomain "autoinst";
  13.  
  14.     import "Stage";
  15.     import "AutoInstall";
  16.     import "AutoinstConfig";
  17.     import "Summary";
  18.     import "Keyboard";
  19.     import "Mouse";
  20.     import "Language";
  21.     import "Keyboard";
  22.     import "Timezone";
  23.     import "Misc";
  24.     import "Profile";
  25.     import "Pkg";
  26.  
  27.     //
  28.     // Show proposal and ask user for confirmation to go on with auto-installation
  29.     // Similar to interactive mode, without letting use change settings
  30.     // Interactive mode implies confirmation as well..
  31.     //
  32.     global boolean Confirm = true;
  33.  
  34.     //
  35.     // Keyboard
  36.     //
  37.     //global map keyboard = $[];
  38.  
  39.     //
  40.     // Language
  41.     //
  42.     //global string language = "";
  43.  
  44.     //
  45.     // Mouse, if not autoprobed
  46.     //
  47.     global map  mouse = $[];
  48.  
  49.     //
  50.     // Clock Settings
  51.     //
  52.     //global map Clock = $[];
  53.  
  54.     //
  55.     // Mode Settings
  56.     //
  57.     global map mode = $[];
  58.  
  59.     global map signature_handling = $[];
  60.  
  61.  
  62.     /* default value of settings modified */
  63.     global boolean modified = false;
  64.  
  65.  
  66.     /**
  67.      * Function sets internal variable, which indicates, that any
  68.      * settings were modified, to "true"
  69.      */
  70.     global define void SetModified () {
  71.         modified = true;
  72.     }
  73.  
  74.     /**
  75.      * Functions which returns if the settings were modified
  76.      * @return boolean  settings were modified
  77.      */
  78.     global define boolean GetModified () {
  79.         return modified;
  80.     }
  81.  
  82.     /**
  83.      * Summary of configuration
  84.      * @return string Formatted summary
  85.      */
  86.     global define string Summary()
  87.     {
  88.         //string language_name        = "";
  89.         //string keyboard_name        = "";
  90.         string mouse_name        = "";
  91.  
  92.         if ( mouse["id"]:"" != "" && mouse["id"]:"" != "probe")
  93.         {
  94.             Mouse::Set(mouse["id"]:"");
  95.             mouse_name = Mouse::MakeProposal(false, false);
  96.         }
  97.         else
  98.         {
  99.             mouse_name = "probe";
  100.         }
  101.         string summary = "";
  102.  
  103.         summary = Summary::AddHeader(summary, _("Mouse"));
  104.         summary = Summary::AddLine(summary, (mouse_name != "") ?
  105.                                    mouse_name : Summary::NotConfigured());
  106.  
  107.         summary = Summary::AddHeader(summary, _("Confirm installation?"));
  108.         summary = Summary::AddLine(summary, (mode["confirm"]:true) ?
  109.                                    _("Yes") : _("No"));
  110.  
  111.         summary = Summary::AddHeader(summary, _("Second Stage of AutoYaST"));
  112.         summary = Summary::AddLine(summary, (mode["second_stage"]:true) ?
  113.                                    _("Yes") : _("No"));
  114.  
  115.         summary = Summary::AddHeader(summary, _("Halting the machine after stage one"));
  116.         summary = Summary::AddLine(summary, (mode["halt"]:false) ?
  117.                                    _("Yes") : _("No"));
  118.  
  119.         summary = Summary::AddHeader(summary, _("Signature Handling"));
  120.         summary = Summary::AddLine(summary, (AutoinstGeneral::signature_handling["accept_unsigned_file"]:false) ?
  121.                                    _("Accepting unsigned files") : _("Not accepting unsigned files"));
  122.         summary = Summary::AddLine(summary, (AutoinstGeneral::signature_handling["accept_file_without_checksum"]:false) ?
  123.                                    _("Accepting files without a checksum") : _("Not accepting files without a checksum"));
  124.         summary = Summary::AddLine(summary, (AutoinstGeneral::signature_handling["accept_verification_failed"]:false) ?
  125.                                    _("Accepting failed verifications") : _("Not accepting failed verifications"));
  126.         summary = Summary::AddLine(summary, (AutoinstGeneral::signature_handling["accept_unknown_gpg_key"]:false) ?
  127.                                    _("Accepting unknown GPG keys") : _("Not accepting unknown GPG Keys"));
  128.         summary = Summary::AddLine(summary, (AutoinstGeneral::signature_handling["import_gpg_key"]:false) ?
  129.                                    _("Importing new GPG keys") : _("Not importing new GPG Keys"));
  130.  
  131.         return summary;
  132.     }
  133.  
  134.     /**
  135.      * Import Configuration
  136.      * @param map settings
  137.      * @return booelan
  138.      */
  139.     global define boolean Import (map settings)
  140.     {
  141.         SetModified ();
  142.         y2milestone("General import: %1",settings);
  143.         //language =    settings["language"]:"";
  144.         //keyboard =      settings["keyboard"]:$[];;
  145.         //Clock    =    settings["clock"]:$[];
  146.         mouse =            settings["mouse"]:$[];
  147.         mode  =            settings["mode"]:$[];
  148.         signature_handling = settings["signature-handling"]:$[];
  149.         return true;
  150.     }
  151.  
  152.  
  153.     /**
  154.      * Export Configuration
  155.      * @return map
  156.      */
  157.     global define map Export ()
  158.     {
  159.         map general = $[];
  160.  
  161.         /*
  162.         general["language"] = language ;
  163.         if (haskey(keyboard, "keyboard_values") || Keyboard::ExpertSettingsChanged )
  164.         {
  165.             keyboard["keyboard_values"] = Keyboard::GetExpertValues();
  166.         }
  167.  
  168.         general["keyboard"] = keyboard;
  169.         general["clock"] = Clock;
  170.         */
  171.         general["mouse"] = mouse;
  172.         general["mode"] = mode;
  173.         general["signature-handling"] = signature_handling;
  174.         return general;
  175.     }
  176.  
  177.     /**
  178.      * set the sigature handling
  179.      * @return void
  180.      */
  181.     global define void SetSignatureHandling() {
  182.         if( haskey(signature_handling, "accept_unsigned_file" ) )
  183.             Pkg::CallbackAcceptUnsignedFile( 
  184.                 signature_handling["accept_unsigned_file"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  185.             );
  186.         if( haskey(signature_handling, "accept_file_without_checksum" ) )
  187.             Pkg::CallbackAcceptFileWithoutChecksum( 
  188.                 signature_handling["accept_file_without_checksum"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  189.             );
  190.         if( haskey(signature_handling, "accept_verification_failed") )
  191.             Pkg::CallbackAcceptVerificationFailed( 
  192.                 signature_handling["accept_verification_failed"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  193.             );
  194.         if( haskey(signature_handling, "trusted_key_added") )
  195.             Pkg::CallbackTrustedKeyAdded( 
  196.                 signature_handling["trusted_key_added"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  197.             );
  198.         if( haskey(signature_handling, "trusted_key_removed") )
  199.             Pkg::CallbackTrustedKeyRemoved( 
  200.                 signature_handling["trusted_key_removed"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  201.             );
  202.         if( haskey(signature_handling, "accept_unknown_gpg_key") )
  203.             Pkg::CallbackAcceptUnknownGpgKey( 
  204.                 signature_handling["accept_unknown_gpg_key"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  205.             );
  206.         if( haskey(signature_handling, "import_gpg_key") )
  207.             Pkg::CallbackImportGpgKey( 
  208.                 signature_handling["import_gpg_key"]:false ? "AutoInstall::callbackTrue" : "AutoInstall::callbackFalse"
  209.             );
  210.  
  211.     }
  212.  
  213.     /**
  214.      * Write General  Configuration
  215.      * @return boolean true on success
  216.      */
  217.     global define boolean Write()
  218.     {
  219.         AutoinstConfig::Confirm = mode["confirm"]:true;
  220.         AutoinstConfig::ForceBoot = mode["forceboot"]:false;
  221.         AutoinstConfig::Halt = mode["halt"]:false;
  222.         AutoinstConfig::RebootMsg = mode["rebootmsg"]:false;
  223.  
  224.         //
  225.         // mouse
  226.         //
  227.  
  228.         if ( mouse["id"]:"" != "probe" && mouse["id"]:"" != "")
  229.         {
  230.             Mouse::Set(mouse["id"]:"");
  231.         }
  232.         else if (haskey(mouse,"device"))
  233.         {
  234.             //
  235.             // Otherwise, try to find the mouse id from the DB using data supplied by user,
  236.             // at least the device is needed.
  237.             //
  238.             string device = mouse["device"]:"none";
  239.             integer wheels = mouse["wheels"]:0;
  240.  
  241.             map<string, list> mice = (map<string, list>)Misc::ReadAlternateFile ("mouse_db.ycp", "mouse_raw.ycp");
  242.  
  243.             foreach(string f,list g, mice, ``{
  244.                 map data = g[1]:$[];
  245.                 if ( data["wheels"]:0 == wheels  && data["device"]:"" == device)
  246.                 {
  247.                     mouse["id"] =  f;
  248.                 }
  249.             });
  250.              Mouse::Set(mouse["id"]:"");
  251.         }
  252.         SetSignatureHandling();
  253.     }
  254.  
  255.     /**
  256.      * Constructor
  257.      */
  258.     global define void AutoinstGeneral ()
  259.     {
  260.         if( Stage::cont () ) {
  261.             // FIXME: wrong position for this
  262.             if (Profile::current["general"]:$[] != $[])
  263.                 Import(Profile::current["general"]:$[]);
  264.             SetSignatureHandling();
  265.         }
  266.         return;
  267.     }
  268.  
  269. }
  270.  
  271.