-#!/usr/bin/env python
+#!/usr/bin/env python3
# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
+from __future__ import print_function
+
import sys, os
sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules')
-from ftptree import FtpTree
+import ftptree
from common import checkdir
+import ftpio
if len(sys.argv) < 3:
- print "Not enough parameters given"
- print "remove.py tree package1 [package2...]"
+ print("ERR: not enough parameters given")
+ print("remove.py tree package1 [package2...]")
sys.exit(1)
checkdir(sys.argv[1])
-tree=FtpTree(sys.argv[1])
+ftpio.connect('remove')
+
+if not ftpio.lock(sys.argv[1], True):
+ print("ERR: %s tree already locked" % sys.argv[1])
+ sys.exit(1)
+
+try:
+ tree=ftptree.FtpTree(sys.argv[1])
+ #tree.do_checkbuild=False
+ pkgs = list(set(sys.argv[2:]))
+ tree.mark4removal(pkgs)
+ tree.removepkgs()
+except ftptree.SomeError:
+ # In case of problems we need to unlock the tree before exiting
+ ftpio.unlock(sys.argv[1])
+ sys.exit(1)
-tree.mark4removal(sys.argv[2:])
-tree.removepkgs()
+ftpio.unlock(sys.argv[1])