]>
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') |
f053c9e6 | 6 | import ftptree |
6ebc8df7 | 7 | from common import checkdir |
5959a5e8 | 8 | import ftpio |
514f66ab | 9 | |
f053c9e6 MM |
10 | nocheckbuild=False |
11 | if len(sys.argv) > 4 and sys.argv[1]=='-nb': | |
12 | nocheckbuild=True | |
13 | sys.argv=sys.argv[1:] | |
14 | ||
15 | if len(sys.argv) < 4: | |
514f66ab | 16 | print "Not enough parameters given" |
f053c9e6 MM |
17 | print "move.py [options] src-tree dst-tree package [package2 package3 ...]" |
18 | print "\nOptions:" | |
19 | print " -nb Do not check if builds are finished.\n" | |
514f66ab MM |
20 | sys.exit(1) |
21 | ||
6ebc8df7 MM |
22 | checkdir(sys.argv[1]) |
23 | checkdir(sys.argv[2]) | |
514f66ab | 24 | |
0a108b7f | 25 | ftpio.connect('move') |
514f66ab | 26 | |
0a108b7f | 27 | if not ftpio.lock(sys.argv[1], True): |
b74d18b8 | 28 | print "%s tree already locked" % sys.argv[1] |
0a108b7f MM |
29 | sys.exit(1) |
30 | ||
31 | if not ftpio.lock(sys.argv[2], True): | |
32 | ftpio.unlock(sys.argv[1]) | |
b74d18b8 | 33 | print "%s tree already locked" % sys.argv[2] |
0a108b7f MM |
34 | sys.exit(1) |
35 | ||
36 | try: | |
f053c9e6 MM |
37 | srctree=ftptree.FtpTree(sys.argv[1], loadall=True) |
38 | dsttree=ftptree.FtpTree(sys.argv[2]) | |
39 | if nocheckbuild: | |
40 | srctree.do_checkbuild=False | |
0a108b7f MM |
41 | srctree.mark4moving(sys.argv[3:]) |
42 | ||
43 | srctree.movepkgs(dsttree) | |
44 | except ftptree.SomeError: | |
f053c9e6 | 45 | # In case of problems we need to unlock the trees before exiting |
0a108b7f MM |
46 | ftpio.unlock(sys.argv[1]) |
47 | ftpio.unlock(sys.argv[2]) | |
48 | sys.exit(1) | |
49 | ||
50 | ftpio.unlock(sys.argv[1]) | |
51 | ftpio.unlock(sys.argv[2]) | |
514f66ab | 52 |