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 / DirInstall.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  107 lines

  1. /**
  2.  * File:    modules/DirInstall.ycp
  3.  * Package:    Instalation into a Directory
  4.  * Summary:    Instalation into a Directory  settings, input and output functions
  5.  * Authors:    Anas Nashif <nashif@suse.de>
  6.  *
  7.  * $Id: DirInstall.ycp 33515 2006-10-19 11:04:46Z lslezak $
  8.  *
  9.  */
  10. {
  11. textdomain "packager";
  12. module "DirInstall";
  13. import "Mode";
  14. import "Stage";
  15. import "HTML";
  16. import "ProductControl";
  17. import "String";
  18.  
  19. global boolean runme_at_boot = false;
  20. global string target = "/var/tmp/dirinstall";
  21.  
  22. global boolean makeimage = false;
  23. global string image_dir = "";
  24. global string image_name = "";
  25.  
  26.  
  27. global string dirinstall_control_file =
  28.         "/usr/share/YaST2/control/dirinstall.xml";
  29.  
  30. global boolean installing_into_dir = false;
  31.  
  32. list<list<string> > filesystems = [
  33.     ["/proc", "proc", "proc" ],
  34.     ["/sys", "sysfs", "sysfs" ],
  35. ];
  36.  
  37. list<string> mounted_fs = [];
  38.  
  39. global void InitProductControl () {
  40.     if (Stage::normal())
  41.     {
  42.         ProductControl::custom_control_file = dirinstall_control_file;
  43.  
  44.         if (!ProductControl::Init())
  45.         {
  46.             y2error("control file %1 not found", ProductControl::custom_control_file );
  47.         }
  48.     } else {
  49.        installing_into_dir =false;
  50.     }
  51.  
  52.  
  53. }
  54.  
  55. global void DirInstall()
  56. {
  57.     InitProductControl ();
  58. }
  59.  
  60. global string Propose() 
  61. {
  62.     string color = "red";
  63.     list<string> tmp = [];
  64.     // Proposal for dirinstall installation
  65.     tmp = add (tmp, sformat (_("Target Directory: %1"), HTML::Colorize(DirInstall::target, color)));
  66.  
  67.     // Proposal for backup during update
  68.     tmp = add (tmp, sformat (_("Run YaST and SuSEconfig at First Boot: %1"), HTML::Colorize(DirInstall::runme_at_boot
  69.     // part of label in proposal
  70.     ? _("Yes"):
  71.     // part of label in proposal
  72.     _("No"), color) ));
  73.     // Proposal for dirinstall installation
  74.     tmp = add (tmp, sformat (_("Create Image: %1"), HTML::Colorize(DirInstall::makeimage ? _("Yes"): _("No"), color) ));
  75.     return HTML::List (tmp);
  76.  
  77. }
  78.  
  79. global void MountFilesystems () {
  80.     mounted_fs = [];
  81.     foreach (list<string> descr, filesystems, {
  82.     string mp = descr[0]:"";
  83.     string dev = descr[1]:"";
  84.     string type = descr[2]:"";
  85.     mp = target + mp;
  86.     WFM::Execute (.local.bash, sformat ("test -d '%1' || mkdir -p '%1'", String::Quote (mp)));
  87.     WFM::Execute (.local.bash, sformat ("/bin/mount -t %1 %2 '%3'",
  88.         type, dev, String::Quote (mp)));
  89.     mounted_fs = add (mounted_fs, mp);
  90.     });
  91.     y2milestone ("Mounted filesystems: %1", mounted_fs);
  92. }
  93.  
  94. global void UmountFilesystems () {
  95.     y2milestone ("Mounted filesystems: %1", mounted_fs);
  96.     foreach (string mp, mounted_fs, {
  97.     WFM::Execute (.local.bash, sformat ("/bin/umount '%1'", String::Quote (mp)));
  98.     });
  99.     mounted_fs = [];
  100. }
  101.  
  102. global void FinishPackageManager () {
  103.     Pkg::SourceFinishAll ();
  104.     Pkg::TargetFinish ();
  105. }
  106. }
  107.