-#!/usr/bin/env python
+#!/usr/bin/env python3
# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
+from __future__ import print_function
+
import sys, os, re
import getopt
import subprocess
try:
opts, args = getopt.getopt(sys.argv[1:], 'qsdo:', [ "quiet" ])
except getopt.GetoptError:
- print >>sys.stderr, "ERR: options error"
- print >>sys.stderr, "rpmlint.py tree package1 [package2...]"
+ print("ERR: options error", file=sys.stderr)
+ print("rpmlint.py tree package1 [package2...]", file=sys.stderr)
sys.exit(1)
quiet = False
outstream = open(a, 'w')
if len(args) < 1:
- print >>sys.stderr, "ERR: missing tree name"
- print >>sys.stderr, "rpmlint.py tree package1 [package2...]"
+ print("ERR: missing tree name", file=sys.stderr)
+ print("rpmlint.py tree package1 [package2...]", file=sys.stderr)
sys.exit(1)
treename = args[0]
ftpio.connect('rpmlint')
if not ftpio.lock(treename, True):
- print >>sys.stderr, "ERR: %s tree already locked" % treename
+ print("ERR: %s tree already locked" % treename, file=sys.stderr)
sys.exit(1)
files = []
tree.mark4moving(packages)
files = tree.rpmfiles(debugfiles = debugfiles, sourcefiles = False)
-except (ftptree.SomeError, KeyboardInterrupt), e:
+except (ftptree.SomeError, KeyboardInterrupt) as e:
# In case of problems we need to unlock the tree before exiting
ftpio.unlock(treename)
sys.exit(1)
def get_stats(self, file):
cachefile = self.cachefile(file)
- if not os.path.exists(cachefile):
+ if not os.path.exists(cachefile) or os.path.getsize(cachefile) <= 0:
return None
# show last line (that contains status)
def print_stats(self, file = None):
if file:
(dirname, filename) = os.path.split(file)
- print >>self.outstream, "\r\033[0K%d packages and %d specfiles checked; %d errors, %d warnings. [%s]" % (self.packages, self.specfiles, self.errors, self.warnings, filename),
+ print("\r\033[0K%d packages and %d specfiles checked; %d errors, %d warnings. [%s]" % (self.packages, self.specfiles, self.errors, self.warnings, filename), file=self.outstream)
else:
- print >>self.outstream, "\r\033[0K%d packages and %d specfiles checked; %d errors, %d warnings." % (self.packages, self.specfiles, self.errors, self.warnings)
+ print("\r\033[0K%d packages and %d specfiles checked; %d errors, %d warnings." % (self.packages, self.specfiles, self.errors, self.warnings), file=self.outstream)
sys.stdout.flush()
def cat(self, file):
- print >>self.outstream, "".join(open(file, 'r').readlines())
+ print("".join(open(file, 'r').readlines()), file=self.outstream)
def show_results(self, file):
m = self.get_stats(file)
cachefile = self.cachefile(file)
if not os.path.exists(cachefile):
- print >>self.outsteram, "MISSING: report: %s" % file
+ print("MISSING: report: %s" % file, file=self.outstream)
if m['errors'] > 0 or m['warnings'] > 0:
(dirname, filename) = os.path.split(file)
- print >>self.outstream, "rpmlint: %s" % filename
+ print("rpmlint: %s" % filename, file=self.outstream)
self.cat(cachefile)
def rpmlint(self, file):
try:
lock = 'rpmlint:'+treename
if not ftpio.lock(lock, True):
- print >>sys.stderr, "ERR: %s tree already locked for rpmlint" % treename
+ print("ERR: %s tree already locked for rpmlint" % treename, file=sys.stderr)
sys.exit(1)
if not quiet:
- print >>outstream, "rpmlint of %d files from %d packages" % (len(files), len(tree.loadedpkgs))
+ print("rpmlint of %d files from %d packages" % (len(files), len(tree.loadedpkgs)), file=outstream)
lint = LintPkg("~/tmp/rpmlint")
lint.outstream = outstream
for file in files: