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

  1. /**
  2.  * File:
  3.  *  copy_files_finish.ycp
  4.  *
  5.  * Module:
  6.  *  Step of base installation finish
  7.  *
  8.  * Authors:
  9.  *  Jiri Srain <jsrain@suse.cz>
  10.  *
  11.  * $Id: copy_files_finish.ycp 34485 2006-11-20 14:27:26Z locilka $
  12.  *
  13.  */
  14.  
  15. {
  16.  
  17. textdomain "installation";
  18.  
  19. import "AddOnProduct";
  20. import "Linuxrc";
  21. import "Installation";
  22. import "Directory";
  23. import "ProductControl";
  24. import "FileUtils";
  25. import "String";
  26.  
  27. include "installation/misc.ycp";
  28.  
  29. any ret = nil;
  30. string func = "";
  31. map param = $[];
  32.  
  33. /* Check arguments */
  34. if(size(WFM::Args()) > 0 && is(WFM::Args(0), string)) {
  35.     func = (string)WFM::Args(0);
  36.     if(size(WFM::Args()) > 1 && is(WFM::Args(1), map))
  37.     param = (map)WFM::Args(1);
  38. }
  39.  
  40. y2milestone ("starting copy_files_finish");
  41. y2debug("func=%1", func);
  42. y2debug("param=%1", param);
  43.  
  44. if (func == "Info")
  45. {
  46.     return (any)$[
  47.     "steps" : 1,
  48.     // progress step title
  49.     "title" : _("Copying files to installed system..."),
  50.     "when" : [ `installation, `update, `autoinst ],
  51.     ];
  52. }
  53. else if (func == "Write")
  54. {
  55.     // bugzilla #221815
  56.     // Adding blacklisted modules into the /etc/modprobe.d/blacklist
  57.     // This should run before the SCR::switch function
  58.     AdjustModprobeBlacklist();
  59.  
  60.     // copy hardware status to installed system
  61.     SCR::Execute (.target.bash,"/bin/cp -a '/var/lib/hardware' " +
  62.     "'" + String::Quote (Installation::destdir) + "/var/lib'");
  63.  
  64.     // if VNC, copy setup data
  65.     if (Linuxrc::vnc ())
  66.     {
  67.     WFM::Execute (.local.bash, "/bin/cp -a '/root/.vnc' " +
  68.         "'" + String::Quote (Installation::destdir) + "/root'");
  69.     }
  70.  
  71.  
  72.     // --------------------------------------------------------------
  73.     // Copy /etc/install.inf into built system so that the
  74.     // second phase of the installation can find it.
  75.     Linuxrc::SaveInstallInf (Installation::destdir);
  76.  
  77.     // Copy control.xml so it can be read once again during continue mode
  78.     SCR::Execute (.target.bash, "/bin/cp " + ProductControl::current_control_file  + " " +
  79.     "'" + String::Quote (Installation::destdir) + Directory::etcdir + "/control.xml'");
  80.     SCR::Execute (.target.bash, "/bin/chmod 0644 " +
  81.     "'" + String::Quote (Installation::destdir) + Directory::etcdir + "/control.xml'");
  82.     // Copy also control files of add-on products
  83.     string cf_dir = (string)SCR::Read (.target.tmpdir) + "/control_files";
  84.     if (size (AddOnProduct::control_files_to_add) > 0)
  85.     {
  86.     SCR::Execute (.target.bash, "/bin/mkdir '" +
  87.         String::Quote (Installation::destdir) + Directory::etcdir + "/control_files'");
  88.     foreach (string file, AddOnProduct::control_files_to_add, {
  89.         SCR::Execute (.target.bash, "/bin/cp " + cf_dir + "/" + file + " " +
  90.         "'" + String::Quote (Installation::destdir) + Directory::etcdir + "/control_files'");
  91.         SCR::Execute (.target.bash, "/bin/chmod 0644 " +
  92.         "'" + String::Quote (Installation::destdir) + Directory::etcdir + "/control_files/" + file + "'");
  93.     });
  94.     SCR::Write (.target.ycp, Installation::destdir + Directory::etcdir + "/control_files/order.ycp", AddOnProduct::control_files_to_add);
  95.     SCR::Execute (.target.bash, "/bin/chmod 0644 " +
  96.         "'" + String::Quote (Installation::destdir) + Directory::etcdir + "/control_files/order.ycp'");
  97.     }
  98.  
  99.     // Remove old eula.txt
  100.     // bugzilla #208908
  101.     string eula_txt = sformat ("%1%2/eula.txt", Installation::destdir, Directory::etcdir);
  102.     if (FileUtils::Exists (eula_txt)) {
  103.     SCR::Execute (.target.remove, eula_txt);
  104.     }
  105.  
  106.     // Copy info.txt so it can be used in firstboot (new eula.txt)
  107.     if (FileUtils::Exists ("/info.txt"))
  108.     {
  109.     SCR::Execute (.target.bash, sformat("/bin/cp /info.txt %1", eula_txt));
  110.     }
  111. }
  112. else
  113. {
  114.     y2error ("unknown function: %1", func);
  115.     ret = nil;
  116. }
  117.  
  118. y2debug("ret=%1", ret);
  119. y2milestone("copy_files_finish finished");
  120. return ret;
  121.  
  122.  
  123. } /* EOF */
  124.