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

  1. /**
  2.  * File:    OSRSystem.ycp
  3.  * Module:    repair
  4.  * Summary:
  5.  * Authors:    Johannes Buchhold <jbuch@suse.de>
  6.  *
  7.  * $Id: OSRSystem.ycp 20450 2004-12-01 11:55:31Z jsuchome $
  8.  *
  9.  * Provide osr mode information.
  10.  */
  11.  
  12. {
  13.     module "OSRSystem";
  14.  
  15.     import "Installation";
  16.     import "Mode";
  17.     import "Report";
  18.  
  19.     import "OSRStatus";
  20.  
  21.     textdomain "repair";
  22.  
  23.     /**
  24.      * The current root environment.
  25.      */
  26.     string root = "/";
  27.  
  28.     /**
  29.      * The target system root mount point.
  30.      */
  31.     string target_root = "/mnt";
  32.  
  33.     /**
  34.      * The base root mount point.
  35.      */
  36.     string org_root    = "/";
  37.  
  38.     /**
  39.      * Change the root environment.
  40.      * @param root The new root environment.
  41.      */
  42.     global define boolean ChangeRoot(string new_root )``{
  43.  
  44.       if( new_root != root && ! Mode::test())
  45.       {
  46.       y2milestone("changing root environment from %1 to %2",root, new_root);
  47.  
  48.       WFM::SCRClose ( Installation::scr_handle );
  49.       Installation::scr_handle = WFM::SCROpen ("chroot="+ new_root +":scr", false );
  50.       Installation::scr_destdir = new_root;
  51.  
  52.       if( Installation::scr_handle < 0 )
  53.       {
  54.           y2error("changing root was not successful");
  55.           Report::Error(_("
  56. Changing environment to target
  57. system was not successful."));
  58.  
  59.           OSRStatus::ErrorSeverityBlocking();
  60.           // try to reopen old SCR...
  61.           Installation::scr_handle = WFM::SCROpen ("scr", false);
  62.           Installation::scr_destdir = root;
  63.           return false;
  64.       }
  65.       else
  66.       {
  67.           WFM::SCRSetDefault (Installation::scr_handle);
  68.           SCR::Read (.target.tmpdir);
  69.  
  70.           root = new_root;
  71.           y2milestone("changing root was successful");
  72.       }
  73.       }
  74.       return true;
  75.     }
  76.  
  77.     global define void SetOrgRoot()``{
  78.  
  79.       if( ChangeRoot( org_root) )
  80.       {
  81.       root = org_root;
  82.       }
  83.     }
  84.  
  85.     global define void Reset()``{
  86.     target_root = "/mnt";
  87.     org_root    = "/";
  88.     SetOrgRoot();
  89.     }
  90.  
  91.     /**
  92.      * Change root to target root mount point.
  93.      */
  94.     global define void SetTargetRoot()``{
  95.  
  96.       if( ChangeRoot( target_root ) )
  97.       {
  98.       root = target_root;
  99.       }
  100.     }
  101.  
  102.     global define string Root()``{
  103.     return root;
  104.     }
  105.  
  106.     global define string TargetRoot()``{
  107.     return target_root;
  108.     }
  109.  
  110.     global define string OrgRoot()``{
  111.     return org_root;
  112.     }
  113.  
  114.  
  115. }
  116.