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 / add-on_auto.ycp next >
Text File  |  2006-11-29  |  3KB  |  155 lines

  1. /**
  2.  * File:
  3.  *      bootloader_auto.ycp
  4.  *
  5.  * Module:
  6.  *      Bootloader installation and configuration
  7.  *
  8.  * Summary:
  9.  *      Bootloader autoinstallation preparation
  10.  *
  11.  * Authors:
  12.  *      Jiri Srain <jsrain@suse.cz>
  13.  *
  14.  * $Id: bootloader_auto.ycp 24249 2005-07-22 08:18:24Z jsrain $
  15.  *
  16.  */
  17. {
  18. textdomain "installation";
  19.  
  20. y2milestone("----------------------------------------");
  21. y2milestone("add-on auto started");
  22.  
  23. import "AddOnProduct";
  24. import "Progress";
  25. import "AutoinstSoftware";
  26. import "PackageCallbacksInit";
  27.  
  28. include "installation/add-on-workflow.ycp";
  29.  
  30. boolean progress_orig = Progress::set (false);
  31.  
  32.  
  33. any ret = nil;
  34. string func = "";
  35. map param = $[];
  36.  
  37. /* Check arguments */
  38. if(size((list)WFM::Args()) > 0 && is(WFM::Args(0), string)) {
  39.     func = (string)WFM::Args(0);
  40.     if(size((list)WFM::Args()) > 1 && is(WFM::Args(1), map))
  41.     param = (map)WFM::Args(1);
  42. }
  43. y2debug("func=%1", func);
  44. y2debug("param=%1", param);
  45.  
  46. if(func == "Import")
  47. {
  48.     ret = AddOnProduct::Import((map<string,any>)param);
  49. }
  50. /**
  51.  * Create a summary
  52.  * return string
  53.  */
  54. else if(func == "Summary") {
  55.     ret = "<ul>\n";
  56.     foreach (map<string,any> prod, AddOnProduct::add_on_products, {
  57.     ret = (string)ret + sformat (_("<li>Media: %1, Path: %2, Product: %3</li>\n"),
  58.         prod["media_url"]:"",
  59.         prod["product_dir"]:"/",
  60.         prod["product"]:""
  61.     );
  62.     });
  63.     ret = (string)ret + "</ul>";
  64. }
  65. /**
  66.  * did configuration changed
  67.  * return boolean
  68. */
  69. else if (func == "GetModified") {
  70.     ret = AddOnProduct::modified;
  71. }
  72. /**
  73.  * set configuration as changed
  74.  * return boolean
  75.  */
  76. else if (func == "SetModified") {
  77.     AddOnProduct::modified = true;
  78.     ret = true;
  79. }
  80. /**
  81.  * Reset configuration
  82.  * return map or list
  83.  */
  84. else if (func == "Reset") {
  85.     AddOnProduct::add_on_products = [];
  86.     ret = $[];
  87. }
  88.  
  89. /**
  90.  * Change configuration
  91.  * return symbol (i.e. `finish || `accept || `next || `cancel || `abort)
  92.  */
  93. else if (func == "Change") {
  94.     Wizard::CreateDialog ();
  95.     AutoinstSoftware::pmInit ();
  96.     PackageCallbacksInit::InitPackageCallbacks ();
  97.     ret = RunAddOnMainDialog (true, true);
  98.     UI::CloseDialog ();
  99.     return ret;
  100. }
  101. /**
  102.  * Return configuration data
  103.  * return map or list
  104.  */
  105. else if (func == "Export") {
  106.     ret = AddOnProduct::Export();
  107. }
  108. /**
  109.  * Write configuration data
  110.  * return boolean
  111.  */
  112. else if (func == "Write") {
  113.     map<string,map<string,integer> > sources = $[];
  114.     AddOnProduct::add_on_products = maplist (map<string,any> prod, AddOnProduct::add_on_products, {
  115.     string media = prod["media_url"]:"";
  116.     string pth = prod["product_dir"]:"/";
  117.     sources[media] = sources[media]:$[];
  118.     if (sources[media, pth]:-1 == -1)
  119.     {
  120.         integer srcid = Pkg::SourceCreate (media, pth);
  121.         if (srcid == -1 || srcid == nil)
  122.         // error report
  123.         Report::Error (_("Failed to add add-on product."));
  124.         sources[media, pth] = srcid;
  125.     }
  126.     prod["media"] = sources[media, pth]:-1;
  127.     Pkg::ResolvableInstall (prod["product"]:"", `product);
  128.     });
  129.     ret = true;
  130. }
  131. /**
  132.  * Read configuration data
  133.  * return boolean
  134.  */
  135. else if (func == "Read") {
  136.     y2milestone ("Read not supported");
  137.     ret = true;
  138. }
  139. /* unknown function */
  140. else {
  141.     y2error("unknown function: %1", func);
  142.     ret =  false;
  143. }
  144. Progress::set (progress_orig);
  145.  
  146. y2debug("ret=%1", ret);
  147. y2milestone("add-on_auto finished");
  148. y2milestone("----------------------------------------");
  149.  
  150. return ret;
  151.  
  152. /* EOF */
  153.  
  154. }
  155.