lkundrak / rpms / zypper

Forked from rpms/zypper 5 years ago
Clone

Blame 0001-zypper-log-Make-Python-3-compatible.patch

1eeac97
From bd9fabba88a532a4d8146c975a4be7e8de1a941c Mon Sep 17 00:00:00 2001
1eeac97
From: Neal Gompa <ngompa13@gmail.com>
1eeac97
Date: Sat, 3 Nov 2018 13:42:50 -0400
1eeac97
Subject: [PATCH] zypper-log: Make Python 3 compatible
1eeac97
1eeac97
As part of the effort to cull Python 2 dependencies in Fedora,
1eeac97
this code was trivially ported to Python 3 to remove the Python 2
1eeac97
dependency in Zypper.
1eeac97
1eeac97
Reference: https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
1eeac97
Reference: https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal
1eeac97
---
1eeac97
 tools/zypper-log | 27 ++++++++++++++-------------
1eeac97
 1 file changed, 14 insertions(+), 13 deletions(-)
1eeac97
1eeac97
diff --git a/tools/zypper-log b/tools/zypper-log
1eeac97
index 710ebae7..e28d01fa 100755
1eeac97
--- a/tools/zypper-log
1eeac97
+++ b/tools/zypper-log
1eeac97
@@ -5,6 +5,7 @@
1eeac97
 #
1eeac97
 # Author: Dominik Heidler <dheidler@suse.de>
1eeac97
 
1eeac97
+from __future__ import print_function
1eeac97
 import os, string, re, bz2, zlib, sys, time, argparse, errno
1eeac97
 import subprocess
1eeac97
 
1eeac97
@@ -32,8 +33,8 @@ def getLogFiles(rotate = 0):
1eeac97
 def readFile(logfile):
1eeac97
   try:
1eeac97
     logtxt = open(logfile).read()
1eeac97
-  except IOError, e:
1eeac97
-    print >> sys.stderr, "\rIOError: %s: '%s'" % (e.strerror, e.filename)
1eeac97
+  except IOError as e:
1eeac97
+    print("\rIOError: %s: '%s'" % (e.strerror, e.filename), file=sys.stderr)
1eeac97
     sys.exit(1)
1eeac97
   fext = logfile.split('.')[-1]
1eeac97
   if fext == 'xz':
1eeac97
@@ -53,7 +54,7 @@ def getListFromLogFiles(logfiles):
1eeac97
   c = re.compile(r"===== Hi, me zypper (\d+.\d+.\d+).*$\s(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}).+\((\d+)\).+=====\s(.+)\s=====|genericfrontend.cc.*Launched (YaST2) component (.*)$\s(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}).+\((\d+)\)", re.M)
1eeac97
 
1eeac97
   for logfile in logfiles:
1eeac97
-    print >> sys.stderr, "Reading %s" % logfile, '.' * (filenamelen - len(logfile) + 3),
1eeac97
+    print("Reading %s" % logfile, '.' * (filenamelen - len(logfile) + 3), end=' ', file=sys.stderr)
1eeac97
     sys.stderr.flush()
1eeac97
     for run in c.findall(readFile(logfile)):
1eeac97
       if run[4] == 'YaST2':
1eeac97
@@ -75,9 +76,9 @@ def getListFromLogFiles(logfiles):
1eeac97
                        'time': time.strptime(tim, "%Y-%m-%d %H:%M:%S"),
1eeac97
                        'pid': pid,
1eeac97
                        'cmd': cmd.replace("'", "")})
1eeac97
-    print >> sys.stderr, "DONE"
1eeac97
+    print("DONE", file=sys.stderr)
1eeac97
     sys.stderr.flush()
1eeac97
-  print >> sys.stderr, ""
1eeac97
+  print("", file=sys.stderr)
1eeac97
   sys.stderr.flush()
1eeac97
   return logindex
1eeac97
 
1eeac97
@@ -85,7 +86,7 @@ def printList(logindex, date = False):
1eeac97
   global pidlen, verlen
1eeac97
   rows, columns = os.popen('stty size', 'r').read().split()
1eeac97
 
1eeac97
-  print "TIME              PID", ' ' * (pidlen - 3), "VER", ' ' * (verlen - 3), "CMD"
1eeac97
+  print("TIME              PID", ' ' * (pidlen - 3), "VER", ' ' * (verlen - 3), "CMD")
1eeac97
   for logentry in logindex:
1eeac97
     if date and date != time.strftime("%Y-%m-%d", logentry['time']):
1eeac97
       continue
1eeac97
@@ -93,7 +94,7 @@ def printList(logindex, date = False):
1eeac97
     spaceleft = int(columns) - (22 + pidlen + len(logentry['version']) + len(logentry['cmd']))
1eeac97
     if spaceleft < 0 and sys.stdout.isatty():
1eeac97
       logentry['cmd'] = logentry['cmd'][:spaceleft-3] + '...'
1eeac97
-    print "%(ptime)s  %(pid)s" % logentry, ' ' * (pidlen - len(logentry['pid'])), "%(version)s" % logentry, ' ' * (verlen - len(logentry['version'])),  "%(cmd)s" % logentry
1eeac97
+    print("%(ptime)s  %(pid)s" % logentry, ' ' * (pidlen - len(logentry['pid'])), "%(version)s" % logentry, ' ' * (verlen - len(logentry['version'])),  "%(cmd)s" % logentry)
1eeac97
 
1eeac97
 def printLogByPID(logfiles, pid, date = False):
1eeac97
   if not date:
1eeac97
@@ -102,14 +103,14 @@ def printLogByPID(logfiles, pid, date = False):
1eeac97
   c = re.compile(r"%s \d{2}:\d{2}:\d{2} \<\d+\> [^(]+\(%d\).+" % (date, pid))
1eeac97
 
1eeac97
   for logfile in logfiles:
1eeac97
-    print >> sys.stderr, "Reading %s" % logfile, '.' * (filenamelen - len(logfile) + 3),
1eeac97
+    print("Reading %s" % logfile, '.' * (filenamelen - len(logfile) + 3), end=' ', file=sys.stderr)
1eeac97
     sys.stderr.flush()
1eeac97
     output.extend( c.findall(readFile(logfile)) )
1eeac97
-    print >> sys.stderr, "DONE"
1eeac97
+    print("DONE", file=sys.stderr)
1eeac97
     sys.stderr.flush()
1eeac97
-  print >> sys.stderr, ""
1eeac97
+  print("", file=sys.stderr)
1eeac97
   sys.stderr.flush()
1eeac97
-  print "\n".join(output)
1eeac97
+  print("\n".join(output))
1eeac97
 
1eeac97
 def main():
1eeac97
   parser = argparse.ArgumentParser(description='This tool helps you to access the zypper logfile. Run this command without any arguments to get a list of your zypper runs. Provide the PID-File of a zypper run as an argument to query the log for this run.')
1eeac97
@@ -130,7 +131,7 @@ def main():
1eeac97
     try:
1eeac97
       args.date = time.strftime("%Y-%m-%d", time.strptime(args.date, "%Y-%m-%d"))
1eeac97
     except ValueError:
1eeac97
-      print >> sys.stderr, "ValueError: Time data '%s' does not match format 'YYYY-MM-DD'" % args.date
1eeac97
+      print("ValueError: Time data '%s' does not match format 'YYYY-MM-DD'" % args.date, file=sys.stderr)
1eeac97
       sys.exit(1)
1eeac97
   if args.pid:
1eeac97
      printLogByPID(logfiles, args.pid, args.date)
1eeac97
@@ -142,6 +143,6 @@ def main():
1eeac97
 if __name__ == "__main__":
1eeac97
   try:
1eeac97
     main()
1eeac97
-  except IOError, e:
1eeac97
+  except IOError as e:
1eeac97
     if e.errno != errno.EPIPE:
1eeac97
       raise
1eeac97
-- 
1eeac97
2.17.2
1eeac97