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

  1. /**
  2.  *  File:
  3.  *    OSRLogFile.ycp
  4.  *
  5.  *  Module:
  6.  *    YaST2 OS Repair. Automatic error detection & repair tool for Linux.
  7.  *
  8.  *  Summary:
  9.  *    YaST2 OS Repair. Automatic error detection & repair tool for Linux.
  10.  *
  11.  *  Author:
  12.  *    Michael Koehrmann <curry@suse.de>
  13.  *    Johannes Buchhold <jbuch@suse.de>
  14.  *
  15.  * $Id: OSRLogFile.ycp 14418 2004-02-19 16:32:26Z jsuchome $
  16.  */
  17. {
  18.   module "OSRLogFile";
  19.  
  20.   /**
  21.    * The name for the log file
  22.    */
  23.   string file = "";
  24.  
  25.   /**
  26.    *  Returns the path of the global temporary directory, e.g.
  27.    *  "/tmp/YaST2-02274".
  28.    *  @return string The path of the temporary directory.
  29.    *  @example string tmpdir = GetTmpDir();
  30.    */
  31.   global define string GetTmpDir() ``{
  32.       return (string) WFM::Read (.local.tmpdir, "");
  33.   };
  34.  
  35.   /**
  36.    *  Tests if the specified logfile exists, is readable, writable, ...
  37.    *  If the specified file not exists, it will be created with the correct
  38.    *  file permissions.
  39.    *
  40.    *  For internal use only.
  41.    *
  42.    *  @param string new_file Name of the log file.
  43.    *  @return True if the specified logfile was created/set up successfully.
  44.    */
  45.   define boolean SetFile(string new_file) ``{
  46.  
  47.       // set the class attribute file to the specified file name
  48.       file = new_file;
  49.  
  50.       // write the actual date to the log file
  51.       if (WFM::Execute(.local.bash,
  52.         sformat("/bin/date >> %1; echo >> %1", new_file))  == 0 )
  53.       {
  54.       // check if the new file is written correctly
  55.       if ( WFM::Execute(.local.bash, "/usr/bin/test -f " + new_file) == 0)
  56.       {
  57.           y2milestone("The log file was set up correctly: %1", new_file);
  58.           return true;
  59.       }
  60.       }
  61.       y2error("The log file was not set up correctly: %1", new_file);
  62.       return false;
  63.   };
  64.  
  65.   /**
  66.    *  Constructor.
  67.    *
  68.    *  For internal use only.
  69.    */
  70.   global define void OSRLogFile() ``{
  71.  
  72.       if (! SetFile( GetTmpDir() + "/osr_log" ))
  73.       {
  74.       y2error("Setup of the log file failed.");
  75.       }
  76.   };
  77.  
  78.   /**
  79.    *  This function returns the name of the global log file.
  80.    *  @return string The name of the global log file.
  81.    */
  82.   global define string GetLogFileName() ``{
  83.       return file;
  84.   };
  85.  
  86.   /**
  87.    *  Writes the specified string to the end of the log file.
  88.    *
  89.    *  @param string the_string The string that should be written
  90.    *    to the end of the log file.
  91.    *  @return True if the specified string was successfully written
  92.    */
  93.   global define boolean Add(string the_string) ``{
  94.  
  95.       if (WFM::Execute(.local.bash,
  96.         sformat("/bin/echo \'%1\' >> %2", the_string, file) ) == 0 )
  97.       {
  98.       y2milestone("String %1 successfully written to log file %2",
  99.         the_string, file);
  100.       return true;
  101.       }
  102.       else
  103.       {
  104.       y2error("String: %1 not written to log file %2", the_string, file);
  105.       return false;
  106.       }
  107.   };
  108. }
  109.