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 >
Wrap
Text File
|
2006-11-29
|
2KB
|
116 lines
/**
* File: OSRSystem.ycp
* Module: repair
* Summary:
* Authors: Johannes Buchhold <jbuch@suse.de>
*
* $Id: OSRSystem.ycp 20450 2004-12-01 11:55:31Z jsuchome $
*
* Provide osr mode information.
*/
{
module "OSRSystem";
import "Installation";
import "Mode";
import "Report";
import "OSRStatus";
textdomain "repair";
/**
* The current root environment.
*/
string root = "/";
/**
* The target system root mount point.
*/
string target_root = "/mnt";
/**
* The base root mount point.
*/
string org_root = "/";
/**
* Change the root environment.
* @param root The new root environment.
*/
global define boolean ChangeRoot(string new_root )``{
if( new_root != root && ! Mode::test())
{
y2milestone("changing root environment from %1 to %2",root, new_root);
WFM::SCRClose ( Installation::scr_handle );
Installation::scr_handle = WFM::SCROpen ("chroot="+ new_root +":scr", false );
Installation::scr_destdir = new_root;
if( Installation::scr_handle < 0 )
{
y2error("changing root was not successful");
Report::Error(_("
Changing environment to target
system was not successful."));
OSRStatus::ErrorSeverityBlocking();
// try to reopen old SCR...
Installation::scr_handle = WFM::SCROpen ("scr", false);
Installation::scr_destdir = root;
return false;
}
else
{
WFM::SCRSetDefault (Installation::scr_handle);
SCR::Read (.target.tmpdir);
root = new_root;
y2milestone("changing root was successful");
}
}
return true;
}
global define void SetOrgRoot()``{
if( ChangeRoot( org_root) )
{
root = org_root;
}
}
global define void Reset()``{
target_root = "/mnt";
org_root = "/";
SetOrgRoot();
}
/**
* Change root to target root mount point.
*/
global define void SetTargetRoot()``{
if( ChangeRoot( target_root ) )
{
root = target_root;
}
}
global define string Root()``{
return root;
}
global define string TargetRoot()``{
return target_root;
}
global define string OrgRoot()``{
return org_root;
}
}