]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blobdiff - bin/pfa-mvpkg
- all scripts use ftpiod for locking and logging
[projects/pld-ftp-admin.git] / bin / pfa-mvpkg
index 8c17ac3d6cfec154117f5453fde527f6964cdce1..be723517555702200ad8501f408a49315dc74250 100644 (file)
@@ -14,9 +14,29 @@ if len(sys.argv) < 3:
 checkdir(sys.argv[1])
 checkdir(sys.argv[2])
 
-srctree=FtpTree(sys.argv[1], loadall=True)
-dsttree=FtpTree(sys.argv[2])
-srctree.mark4moving(sys.argv[3:])
+ftpio.connect('move')
 
-srctree.movepkgs(dsttree)
+if not ftpio.lock(sys.argv[1], True):
+    print "%s tree already locked" %s sys.argv[1]
+    sys.exit(1)
+
+if not ftpio.lock(sys.argv[2], True):
+    ftpio.unlock(sys.argv[1])
+    print "%s tree already locked" %s sys.argv[2]
+    sys.exit(1)
+
+try:
+    srctree=FtpTree(sys.argv[1], loadall=True)
+    dsttree=FtpTree(sys.argv[2])
+    srctree.mark4moving(sys.argv[3:])
+
+    srctree.movepkgs(dsttree)
+except ftptree.SomeError:
+    # In case of problems we need to unlock the tree before exiting
+    ftpio.unlock(sys.argv[1])
+    ftpio.unlock(sys.argv[2])
+    sys.exit(1)
+
+ftpio.unlock(sys.argv[1])
+ftpio.unlock(sys.argv[2])
 
This page took 0.061076 seconds and 4 git commands to generate.