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.ycp < prev    next >
Text File  |  2006-11-29  |  2KB  |  108 lines

  1. /**
  2.  * File:    clients/add-on.ycp
  3.  * Package:    yast2-installation
  4.  * Summary:    Install an add-on product
  5.  * Authors:    Jiri Srain <jsrain@suse.de>
  6.  *
  7.  */
  8.  
  9. {
  10. textdomain "installation";
  11.  
  12. import "AddOnProduct";
  13. import "Confirm";
  14. import "PackageLock";
  15. import "PackageCallbacksInit";
  16. import "Report";
  17. import "Wizard";
  18. import "Pkg";
  19.  
  20. include "installation/add-on-workflow.ycp";
  21.  
  22. Wizard::CreateDialog();
  23.  
  24. Wizard::SetContents (
  25.     // dialog caption
  26.     _("Add-On Product Media"),
  27.     // busy message (dialog)
  28.     `VBox(`Label(_("Initializing..."))),
  29.     // help
  30.     _("<p>Initializing add-on products...</p>"),
  31.     false,
  32.     true
  33. );
  34.  
  35. Wizard::SetDesktopIcon("vendor");
  36. Wizard::HideBackButton();
  37.  
  38. Wizard::DisableAbortButton();
  39. Wizard::DisableNextButton();
  40.  
  41. // --> Initialization start
  42.  
  43. // check whether running as root
  44. // and having the packager for ourselves
  45. if (! Confirm::MustBeRoot () || ! PackageLock::Check ())
  46. {
  47.     UI::CloseDialog ();
  48.     return `abort;
  49. }
  50.  
  51. // initialize target to import all trusted keys (#165849)
  52. Pkg::TargetInit( "/", false );
  53.  
  54. PackageCallbacksInit::InitPackageCallbacks ();
  55.  
  56. // Initialize current sources
  57. Read();
  58. symbol ret = nil;
  59.  
  60. // <-- Initialization finish
  61.  
  62. Wizard::EnableAbortButton();
  63. Wizard::EnableNextButton();
  64.  
  65. if (size (WFM::Args()) == 0)
  66. {
  67.     y2milestone ("Url not specified in the command line, asking user");
  68.     ret = RunWizard();
  69. }
  70. else
  71. {
  72.     string url = (string)WFM::Args(0);
  73.     y2milestone ("Specified URL %1", url);
  74.     do {
  75.     createResult = SourceManager::createSource (url);
  76.     y2milestone ("Source creating result: %1", createResult);
  77.     } while ( createResult == `again );
  78.     AddOnProduct::last_ret = `next;
  79.     ret = RunAutorunWizard ();
  80. }
  81. if (ret == `next)
  82. {
  83.     // feedback heading
  84.     string heading = _("Add-On Product Installation");
  85.     // feedback message
  86.     string message
  87.     = _("Reading packages available on the installation sources...");
  88.  
  89.     Popup::ShowFeedback (heading, message);
  90.  
  91.     y2milestone ("syncing srcid %1 to zmd", AddOnProduct::src_id);
  92.     boolean synced
  93.     = SourceManager::SyncAddedAndDeleted ([AddOnProduct::src_id], []);
  94.     y2milestone ("sync status: %1", synced);
  95.  
  96.     Popup::ClearFeedback ();
  97.  
  98.     WFM::CallFunction ("inst_addon_update_sources", []);
  99.     ret = AddOnProduct::DoInstall ();
  100.     // Write only when there are some changes
  101.     Write();
  102. }
  103. UI::CloseDialog();
  104. return ret;
  105.  
  106. /* EOF */
  107. }
  108.