#!/usr/bin/env python
# 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')
import ftptree
from mailer import Message
from config import archived_trees, logs_list
+os.umask(0o022)
+
nocheckbuild = False
if len(sys.argv) > 4 and sys.argv[1] == '-nb':
nocheckbuild = True
sys.argv = sys.argv[1:]
if len(sys.argv) < 4:
- print >>sys.stderr, "ERR: not enough parameters given"
- print >>sys.stderr, "move.py [options] src-tree dst-tree package [package2 package3 ...]"
- print >>sys.stderr, "\nOptions:"
- print >>sys.stderr, " -nb Do not check if builds are finished.\n"
+ print("ERR: not enough parameters given", file=sys.stderr)
+ print("move.py [options] src-tree dst-tree package [package2 package3 ...]", file=sys.stderr)
+ print("\nOptions:", file=sys.stderr)
+ print(" -nb Do not check if builds are finished.\n", file=sys.stderr)
sys.exit(1)
checkdir(sys.argv[1])
ftpio.connect('move')
if not ftpio.lock(sys.argv[1], True):
- print >>sys.stderr, "ERR: %s tree already locked" % sys.argv[1]
+ print("ERR: %s tree already locked" % sys.argv[1], file=sys.stderr)
sys.exit(1)
if not ftpio.lock(sys.argv[2], True):
ftpio.unlock(sys.argv[1])
- print >>sys.stderr, "ERR: %s tree already locked" % sys.argv[2]
+ print("ERR: %s tree already locked" % sys.argv[2], file=sys.stderr)
sys.exit(1)
if archivetreename != None and archivetreename != sys.argv[1] and not ftpio.lock(archivetreename, True):
ftpio.unlock(sys.argv[2])
ftpio.unlock(sys.argv[1])
- print "ERR: %s tree already locked" % archivetreename
+ print("ERR: %s tree already locked" % archivetreename, file=sys.stderr)
sys.exit(1)
try:
if logs_list == None:
sys.exit(0)
-print 'Sending mail notification...',
+print('Sending mail notification to %s...' % logs_list)
pkgs = {}
requesters.append(pkg.build[bid].requester)
pkgs[pkg.nvr] = requesters
+ftpadmin = "(unknown)"
+try:
+ ftpadmin = os.environ['FTPADM']
+except KeyError as e:
+ pass
m = Message()
m.set_headers(
to = 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))
+ 'FTP admin %(ftpadmin)s moved from *%(srctree)s* to *%(dsttree)s* %(count)d packages\n\n' +
+ '---- Package name ---- Package built by:\n\n'
+ ) % {
+ 'ftpadmin' : ftpadmin,
+ 'srctree' : sys.argv[1],
+ 'dsttree' : sys.argv[2],
+ 'count' : len(pkgs),
+ }
)
for nvr in sorted(pkgs.keys()):
m.send()
-print 'done.'
+print('done.')