Rely on PYTHONPATH instead of PORTAGE_PYM_PATH for locating portage's python modules...
[portage.git] / bin / clean_locks
index 1d9124c8447c8417c98f5883c63000db1be9b37e..71db0b8e216addcc58f4dbbbdd9de627c218003d 100755 (executable)
@@ -1,22 +1,25 @@
 #!/usr/bin/python -O
 # Copyright 1999-2006 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Id: /var/cvsroot/gentoo-src/portage/bin/clean_locks,v 1.1 2004/09/26 10:44:31 carpaski Exp $
+# $Id$
 
-import os,sys
-sys.path = ["/usr/lib/portage/pym"]+sys.path
-
-import portage_locks
+import os,sys,errno
+try:
+       import portage_locks
+except ImportError:
+       sys.path.insert(0, "/usr/lib/portage/pym")
+       import portage_locks
 
 if not sys.argv[1:] or "--help" in sys.argv or "-h" in sys.argv:
+       import portage
        print
        print "You must specify directories with hardlink-locks to clean."
        print "You may optionally specify --force, which will remove all"
        print "of the locks, even if we can't establish if they are in use."
        print "Please attempt cleaning without force first."
        print
-       print sys.argv[0]+" /usr/portage/distfiles/.locks"
-       print sys.argv[0]+" --force /usr/portage/distfiles/.locks"
+       print "%s %s/.locks" % (sys.argv[0], portage.settings["DISTDIR"])
+       print "%s --force %s/.locks" % (sys.argv[0], portage.settings["DISTDIR"])
        print
        sys.exit(1)
        
@@ -27,10 +30,14 @@ if "--force" in sys.argv[1:]:
 for x in sys.argv[1:]:
        if x == "--force":
                continue
-       for y in portage_locks.hardlock_cleanup(x, remove_all_locks=force):
-               print y
-       print
-
-
-
-       
\ No newline at end of file
+       try:
+               for y in portage_locks.hardlock_cleanup(x, remove_all_locks=force):
+                       print y
+               print
+               
+       except OSError, e:
+               if e.errno in (errno.ENOENT, errno.ENOTDIR):
+                       print "!!! %s is not a directory or does not exist" % x
+               else:
+                       raise
+               sys.exit(e.errno)