import ftptree
from common import checkdir
import ftpio
+from mailer import Message
+import config
+cval=config.value
nocheckbuild=False
if len(sys.argv) > 4 and sys.argv[1]=='-nb':
sys.argv=sys.argv[1:]
if len(sys.argv) < 4:
- print "Not enough parameters given"
+ print "ERR: not enough parameters given"
print "move.py [options] src-tree dst-tree package [package2 package3 ...]"
print "\nOptions:"
print " -nb Do not check if builds are finished.\n"
ftpio.connect('move')
if not ftpio.lock(sys.argv[1], True):
- print "%s tree already locked" % sys.argv[1]
+ print "ERR: %s tree already locked" % sys.argv[1]
sys.exit(1)
if not ftpio.lock(sys.argv[2], True):
ftpio.unlock(sys.argv[1])
- print "%s tree already locked" % sys.argv[2]
+ print "ERR: %s tree already locked" % sys.argv[2]
sys.exit(1)
try:
ftpio.unlock(sys.argv[1])
ftpio.unlock(sys.argv[2])
+if 'logs_list' not in cval:
+ sys.exit(0)
+
+print 'Sending mail notification...',
+
+pkgs={}
+
+for pkg in srctree.marked4moving:
+ requesters=[]
+ for bid in pkg.build.keys():
+ if pkg.build[bid].requester not in requesters:
+ requesters.append(pkg.build[bid].requester)
+ pkgs[pkg.name]=requesters
+
+m=Message()
+m.set_headers(to=cval['logs_list'], subject='MOVED: %s => %s... %d packages' %
+ (sys.argv[1], sys.argv[2], len(pkgs)))
+m.write(('SrcTree: %s DstTree: %s\n' +
+ 'Amount: %d\n\n---- Moved:\n\n') % (sys.argv[1], sys.argv[2], len(pkgs)))
+
+for name in sorted(pkgs.keys()):
+ m.write_line('%s ---- %s' % (name, ', '.join(pkgs[name])))
+
+m.send()
+
+print 'done.'
+