]>
Commit | Line | Data |
---|---|---|
514f66ab MM |
1 | #!/usr/bin/env python |
2 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et | |
3 | ||
6ebc8df7 | 4 | import sys, os |
2f949c90 | 5 | sys.path.insert(0, os.environ['HOME']+'/pld-ftp-admin/modules') |
d9b3388c | 6 | from ftptree import FtpTree |
6ebc8df7 | 7 | from common import checkdir |
514f66ab | 8 | |
9b00920e | 9 | if len(sys.argv) < 3: |
514f66ab | 10 | print "Not enough parameters given" |
9b00920e | 11 | print "move.py src-tree dst-tree [package1, package2, ...]" |
514f66ab MM |
12 | sys.exit(1) |
13 | ||
6ebc8df7 MM |
14 | checkdir(sys.argv[1]) |
15 | checkdir(sys.argv[2]) | |
514f66ab | 16 | |
0a108b7f | 17 | ftpio.connect('move') |
514f66ab | 18 | |
0a108b7f | 19 | if not ftpio.lock(sys.argv[1], True): |
b74d18b8 | 20 | print "%s tree already locked" % sys.argv[1] |
0a108b7f MM |
21 | sys.exit(1) |
22 | ||
23 | if not ftpio.lock(sys.argv[2], True): | |
24 | ftpio.unlock(sys.argv[1]) | |
b74d18b8 | 25 | print "%s tree already locked" % sys.argv[2] |
0a108b7f MM |
26 | sys.exit(1) |
27 | ||
28 | try: | |
29 | srctree=FtpTree(sys.argv[1], loadall=True) | |
30 | dsttree=FtpTree(sys.argv[2]) | |
31 | srctree.mark4moving(sys.argv[3:]) | |
32 | ||
33 | srctree.movepkgs(dsttree) | |
34 | except ftptree.SomeError: | |
35 | # In case of problems we need to unlock the tree before exiting | |
36 | ftpio.unlock(sys.argv[1]) | |
37 | ftpio.unlock(sys.argv[2]) | |
38 | sys.exit(1) | |
39 | ||
40 | ftpio.unlock(sys.argv[1]) | |
41 | ftpio.unlock(sys.argv[2]) | |
514f66ab | 42 |