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 >
Text File  |  2006-11-29  |  4KB  |  145 lines

  1. /**
  2.  * File:
  3.  *    HWConfig.ycp
  4.  *
  5.  * Module:
  6.  *    HWConfig
  7.  *
  8.  * Authors:
  9.  *    Ladislav Slezak <lslezak@suse.cz>
  10.  *
  11.  * Summary:
  12.  *    Module for accessing hardware configuration files (/etc/sysconfig/hwcfg-*)
  13.  *
  14.  * Flags: Stable
  15.  *
  16.  * $Id: HWConfig.ycp 31242 2006-06-01 12:59:16Z locilka $
  17.  */
  18. {
  19.     module "HWConfig";
  20.  
  21.     textdomain "base";
  22.  
  23.     /**
  24.      * Return list of all available hardware configuration files
  25.      * @return list<string> found files
  26.      */
  27.     global define list<string> ConfigFiles() {
  28.     /* read all files */
  29.     list<string> all = SCR::Dir(.sysconfig.hardware.section);
  30.  
  31.     if (all == nil) all = [];
  32.  
  33.     list<string> modules = filter(string file, all, {
  34.         return !regexpmatch(file, "[~]");
  35.     });
  36.  
  37.     y2debug("config files=%1", modules);
  38.  
  39.     return all;
  40.     }
  41.  
  42.     /**
  43.      * Return list of all available variable in the configuration file
  44.      * @param file to search
  45.      * @return list<string> found variables
  46.      */
  47.     global define list<string> Variables(string file) {
  48.     path p = .sysconfig.hardware.value + file;
  49.  
  50.     list<string> values = SCR::Dir(p);
  51.     y2debug("values=%1", values);
  52.  
  53.     return values;
  54.     }
  55.  
  56.     /**
  57.      * Read all values from the file
  58.      * @param file configuration file to read
  59.      * @return map map $[ "VARIABLE" : "value" ]
  60.      */
  61.     global define map<string,string> Values(string file) {
  62.     list<string> vars = Variables(file);
  63.     map<string,string> ret = $[];
  64.     path p = .sysconfig.hardware.value + file;
  65.  
  66.     maplist(string var, vars, {
  67.         string item = (string) SCR::Read(p + var);
  68.         if (item != nil)
  69.         {
  70.         ret[var] = item;
  71.         }
  72.     });
  73.  
  74.     return ret;
  75.     }
  76.  
  77.     /**
  78.      * Set value of the variable in the config file
  79.      * @param file config file
  80.      * @param variable name of the variable
  81.      * @param value the new value
  82.      * @return boolean true on success
  83.      */
  84.     global define boolean SetValue(string file, string variable, string value)
  85.     {
  86.     return (boolean) SCR::Write((.sysconfig.hardware.value + file) + variable, value);
  87.     }
  88.  
  89.     /**
  90.      * Set comment of the variable in the config file
  91.      * @param file config file
  92.      * @param variable name of the variable
  93.      * @return string comment the new comment
  94.      */
  95.     global define string GetValue(string file, string variable)
  96.     {
  97.     return (string) SCR::Read((.sysconfig.hardware.value + file) + variable);
  98.     }
  99.  
  100.     /**
  101.      * Set comment of the variable in the config file
  102.      * @param file config file
  103.      * @param variable name of the variable
  104.      * @param comment the new comment, the comment must be terminated by "\n" chacter!
  105.      * @return boolean true on success
  106.      */
  107.     global define boolean SetComment(string file, string variable, string comment)
  108.     {
  109.     return (boolean) SCR::Write((.sysconfig.hardware.value_comment + file) + variable, comment);
  110.     }
  111.  
  112.     /**
  113.      * Get comment of the variable from the config file
  114.      * @param file config file
  115.      * @param variable name of the variable
  116.      * @return string comment of the variable
  117.      */
  118.     global define string GetComment(string file, string variable)
  119.     {
  120.     return (string) SCR::Read((.sysconfig.hardware.value_comment + file) + variable);
  121.     }
  122.  
  123.     /**
  124.      * Remove configuration file from system
  125.      * @param file config name
  126.      * @return true on success
  127.      */
  128.     global define boolean RemoveConfig(string file)
  129.     {
  130.     path p = .sysconfig.hardware.section + file;
  131.     y2debug("deleting: %1", file);
  132.     return (boolean) SCR::Write(p, nil);
  133.     }
  134.  
  135.     /**
  136.      * Flush - write the changes to files
  137.      * @return true on success
  138.      */
  139.     global define boolean Flush() {
  140.     // save all changes
  141.     return (boolean) SCR::Write(.sysconfig.hardware, nil);
  142.     }
  143.  
  144. }
  145.