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 / PackageLock.ycp < prev    next >
Text File  |  2006-11-29  |  951b  |  44 lines

  1. /**
  2.  * File:    modules/PackageLock.ycp
  3.  * Package:    yast2
  4.  * Summary:    Packages manipulation (system)
  5.  * Authors:    Martin Vidner <mvidner@suse.cz>
  6.  *
  7.  * $Id: PackageLock.ycp 33224 2006-10-02 14:17:13Z jsrain $
  8.  *
  9.  * This should be used everywhere before Pkg is first used. #160319
  10.  */
  11.  
  12. {
  13.  
  14. module "PackageLock";
  15. textdomain "base";
  16.  
  17. import "Report";
  18.  
  19. boolean have_lock = nil;
  20. /**
  21.  * Tries to acquire the packager (zypp) lock.
  22.  * Reports an error if another process has the lock already.
  23.  * Will only report once even if called multiple times.
  24.  * @return true if we can continue
  25.  */
  26. global boolean Check () {
  27.     if (have_lock == nil)
  28.     {
  29.     // Invoke a cheap call that accesses the zypp lock
  30.     have_lock = Pkg::Connect () == true; // nil guard
  31.     if (!have_lock)
  32.     {
  33.         Report::Error (_("Another process is accessing the package database.
  34. Package management cannot be used now.
  35. "));
  36.         // ContinueCancel? What about CLI?
  37.     }
  38.     }
  39.     return have_lock;
  40. }
  41.  
  42.  
  43. }
  44.