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

  1. /**
  2.  * File:
  3.  *    Vendor.ycp
  4.  *
  5.  * Module:
  6.  *    Vendor
  7.  *
  8.  * Summary:
  9.  *    provide vendor/driver update disk functions
  10.  *
  11.  * $Id: Vendor.ycp 33360 2006-10-12 14:45:22Z locilka $
  12.  *
  13.  * Author:
  14.  *    Klaus Kaempf <kkaempf@suse.de>
  15.  *
  16.  */
  17. {
  18.     module "Vendor";
  19.  
  20.     import "Installation";
  21.     import "Directory";
  22.     import "String";
  23.  
  24.     // --------------------------------------------------------------
  25.     // driver update ?!
  26.  
  27.     /**
  28.      * DriverUpdate
  29.      * copy /update/* to target:/tmp/update/
  30.      * !! can only be called in inst_finish !!
  31.      */
  32.  
  33.     global define void DriverUpdate1 ()
  34.     {
  35.     list<string> updatefiles = (list<string>)WFM::Read (.local.dir, ["/update", []]);
  36.     if (size (updatefiles) <= 0)
  37.         return;
  38.  
  39.     // clean up, just in case
  40.     SCR::Execute(.target.bash, "/bin/rm -rf /tmp/update");
  41.  
  42.     // copy log file
  43.     WFM::Execute(.local.bash, "l=/var/log/driverupdate.log ; [ -f $l ] && /bin/cat $l " +
  44.         ">> '" + String::Quote (Installation::destdir) + "$l'");
  45.  
  46.     // copy all update files
  47.     WFM::Execute(.local.bash, "/bin/cp -a /update " +
  48.         "'" + String::Quote (Installation::destdir) + "/tmp/update'");
  49.  
  50.     // unpack update files and run update.post scripts
  51.     SCR::Execute(.target.bash,
  52.              "cd / ; " +
  53.              "echo \"Installing driver update\" >> " + Directory::logdir + "/y2logRPM ; " +
  54.              "for i in /tmp/update/[0-9]*/install ; do " +
  55.              "    [ -f \"$i/update.tar.gz\" ] && /bin/tar -zxf \"$i/update.tar.gz\" ; " +
  56.              "    rpm -Uv $i/*.rpm 2 >> " + Directory::logdir + "/y2logRPM ; " +
  57.              "    [ -f \"$i/update.post\" ] && /bin/chmod +x \"$i/update.post\" && \"$i/update.post\" \"$i\" ; " +
  58.              "done");
  59.     }
  60.  
  61.     global define void DriverUpdate2 ()
  62.     {
  63.     list<string> updatefiles = (list<string>)WFM::Read (.local.dir, ["/update", []]);
  64.     if (size (updatefiles) <= 0)
  65.         return;
  66.  
  67.     // run update.post2 scripts
  68.     SCR::Execute(.target.bash,
  69.              "cd / ; " +
  70.              "for i in /tmp/update/[0-9]*/install ; do " +
  71.              "    [ -f \"$i/update.post2\" ] && /bin/chmod +x \"$i/update.post2\" && \"$i/update.post2\" \"$i\" ; " +
  72.              "done");
  73.  
  74.     // remove driver update dir
  75.     SCR::Execute(.target.bash, "/bin/rm -rf /tmp/update");
  76.     }
  77. }
  78.