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
/
HWConfig.ycp
< prev
next >
Wrap
Text File
|
2006-11-29
|
4KB
|
145 lines
/**
* File:
* HWConfig.ycp
*
* Module:
* HWConfig
*
* Authors:
* Ladislav Slezak <lslezak@suse.cz>
*
* Summary:
* Module for accessing hardware configuration files (/etc/sysconfig/hwcfg-*)
*
* Flags: Stable
*
* $Id: HWConfig.ycp 31242 2006-06-01 12:59:16Z locilka $
*/
{
module "HWConfig";
textdomain "base";
/**
* Return list of all available hardware configuration files
* @return list<string> found files
*/
global define list<string> ConfigFiles() {
/* read all files */
list<string> all = SCR::Dir(.sysconfig.hardware.section);
if (all == nil) all = [];
list<string> modules = filter(string file, all, {
return !regexpmatch(file, "[~]");
});
y2debug("config files=%1", modules);
return all;
}
/**
* Return list of all available variable in the configuration file
* @param file to search
* @return list<string> found variables
*/
global define list<string> Variables(string file) {
path p = .sysconfig.hardware.value + file;
list<string> values = SCR::Dir(p);
y2debug("values=%1", values);
return values;
}
/**
* Read all values from the file
* @param file configuration file to read
* @return map map $[ "VARIABLE" : "value" ]
*/
global define map<string,string> Values(string file) {
list<string> vars = Variables(file);
map<string,string> ret = $[];
path p = .sysconfig.hardware.value + file;
maplist(string var, vars, {
string item = (string) SCR::Read(p + var);
if (item != nil)
{
ret[var] = item;
}
});
return ret;
}
/**
* Set value of the variable in the config file
* @param file config file
* @param variable name of the variable
* @param value the new value
* @return boolean true on success
*/
global define boolean SetValue(string file, string variable, string value)
{
return (boolean) SCR::Write((.sysconfig.hardware.value + file) + variable, value);
}
/**
* Set comment of the variable in the config file
* @param file config file
* @param variable name of the variable
* @return string comment the new comment
*/
global define string GetValue(string file, string variable)
{
return (string) SCR::Read((.sysconfig.hardware.value + file) + variable);
}
/**
* Set comment of the variable in the config file
* @param file config file
* @param variable name of the variable
* @param comment the new comment, the comment must be terminated by "\n" chacter!
* @return boolean true on success
*/
global define boolean SetComment(string file, string variable, string comment)
{
return (boolean) SCR::Write((.sysconfig.hardware.value_comment + file) + variable, comment);
}
/**
* Get comment of the variable from the config file
* @param file config file
* @param variable name of the variable
* @return string comment of the variable
*/
global define string GetComment(string file, string variable)
{
return (string) SCR::Read((.sysconfig.hardware.value_comment + file) + variable);
}
/**
* Remove configuration file from system
* @param file config name
* @return true on success
*/
global define boolean RemoveConfig(string file)
{
path p = .sysconfig.hardware.section + file;
y2debug("deleting: %1", file);
return (boolean) SCR::Write(p, nil);
}
/**
* Flush - write the changes to files
* @return true on success
*/
global define boolean Flush() {
// save all changes
return (boolean) SCR::Write(.sysconfig.hardware, nil);
}
}