-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-admin/syslog-summary: port to py3
Backport upstream py3 PR dpaleino/syslog-summary#4 Remove py2 support Bug: https://bugs.gentoo.org/735202 Signed-off-by: Paul Healy <lmiphay@gmail.com> Signed-off-by: Aaron Bauman <bman@gentoo.org>
- Loading branch information
1 parent
263fd8d
commit fc2ed88
Showing
2 changed files
with
188 additions
and
0 deletions.
There are no files selected for viewing
142 changes: 142 additions & 0 deletions
142
app-admin/syslog-summary/files/syslog-summary-1.14-py3.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
diff --git a/syslog-summary b/syslog-summary | ||
index abf6381..a658c14 100755 | ||
--- a/syslog-summary | ||
+++ b/syslog-summary | ||
@@ -35,6 +35,8 @@ Lars Wirzenius <liw@iki.fi> | ||
Tommi Virtanen <tv@debian.org> | ||
David Paleino <d.paleino@gmail.com>""" | ||
|
||
+from __future__ import print_function | ||
+ | ||
version = "1.14" | ||
|
||
import sys, re, getopt, string | ||
@@ -62,7 +64,7 @@ def io_error(err, filename, die=True): | ||
if die: | ||
traceback.print_exc(file=sys.stderr) | ||
else: | ||
- print "[E] %s [%s(%s) - %s]" % (os.strerror(num), errno.errorcode[num], num, filename) | ||
+ print("[E] %s [%s(%s) - %s]" % (os.strerror(num), errno.errorcode[num], num, filename)) | ||
|
||
if die: | ||
sys.exit(1) | ||
@@ -72,7 +74,7 @@ def read_patterns(filename): | ||
pats = [] | ||
try: | ||
f = open(filename, "r") | ||
- except IOError, e: | ||
+ except IOError as e: | ||
io_error(e, filename, False) | ||
return [] | ||
for line in f: | ||
@@ -91,7 +93,7 @@ def read_states(filename): | ||
return states | ||
try: | ||
f = open(filename, "r") | ||
- except IOError, e: | ||
+ except IOError as e: | ||
io_error(e, filename, False) | ||
return states | ||
for line in f: | ||
@@ -105,9 +107,9 @@ def save_states(filename, states): | ||
return | ||
try: | ||
f = open(filename, "w") | ||
- except IOError, e: | ||
+ except IOError as e: | ||
io_error(e, filename, True) | ||
- for filename in states.keys(): | ||
+ for filename in list(states.keys()): | ||
value = states[filename] | ||
f.write("%s %d %s\n" % (filename, value[0], value[1])) | ||
f.close() | ||
@@ -123,7 +125,7 @@ def split_date(line): | ||
m = pat.match(line) | ||
if m: | ||
return line[:m.end()], line[m.end():] | ||
- print "line has bad date", "<" + string.rstrip(line) + ">" | ||
+ print("line has bad date", "<" + string.rstrip(line) + ">") | ||
return None, line | ||
|
||
def is_gzipped(filename): | ||
@@ -152,7 +154,7 @@ def summarize(filename, states): | ||
order = [] | ||
ignored_count = 0 | ||
if not QUIET: | ||
- print "Summarizing %s" % filename | ||
+ print("Summarizing %s" % filename) | ||
|
||
# If the file is a gzipped log, open it | ||
# using the proper function from the gzip | ||
@@ -162,7 +164,7 @@ def summarize(filename, states): | ||
file = gzopen(filename, "rb") | ||
else: | ||
file = open(filename, "r") | ||
- except IOError, e: | ||
+ except IOError as e: | ||
io_error(e, filename, True) | ||
|
||
linecount = 0 | ||
@@ -170,7 +172,7 @@ def summarize(filename, states): | ||
shaobj = sha1() | ||
if filename in states: | ||
oldlines, oldsha = states[filename] | ||
- for i in xrange(oldlines): | ||
+ for i in range(oldlines): | ||
line = file.readline() | ||
shaobj.update(line) | ||
# print "OLD-new: %s" % shaobj.hexdigest() | ||
@@ -182,7 +184,7 @@ def summarize(filename, states): | ||
else: | ||
linecount = oldlines | ||
if not QUIET: | ||
- print "%8d Lines skipped (already processed)" % linecount | ||
+ print("%8d Lines skipped (already processed)" % linecount) | ||
|
||
line = file.readline() | ||
previous = None | ||
@@ -190,13 +192,13 @@ def summarize(filename, states): | ||
foo=0 | ||
while line: | ||
# foo+=1 | ||
- shaobj.update(line) | ||
+ shaobj.update(line.encode()) | ||
linecount += 1 | ||
|
||
if should_be_ignored(line): | ||
ignored_count += 1 | ||
if DEBUG: | ||
- print "Ignoring: %s" % line | ||
+ print("Ignoring: %s" % line) | ||
line = file.readline() | ||
|
||
date, rest = split_date(line) | ||
@@ -213,7 +215,7 @@ def summarize(filename, states): | ||
count = int(repeated.group(1)) | ||
rest = previous | ||
|
||
- if counts.has_key(rest): | ||
+ if rest in counts: | ||
counts[rest] = counts[rest] + count | ||
else: | ||
assert count == 1 | ||
@@ -233,14 +235,14 @@ def summarize(filename, states): | ||
# print states | ||
|
||
if QUIET and order: | ||
- print "Summarizing %s" % filename | ||
+ print("Summarizing %s" % filename) | ||
if not QUIET or order: | ||
- print "%8d Patterns to ignore" % len(ignore_pats) | ||
- print "%8d Ignored lines" % ignored_count | ||
+ print("%8d Patterns to ignore" % len(ignore_pats)) | ||
+ print("%8d Ignored lines" % ignored_count) | ||
for rest in order: | ||
- print "%8d %s" % (counts[rest], rest), | ||
+ print("%8d %s" % (counts[rest], rest), end='') | ||
if not QUIET or order: | ||
+ print() | ||
|
||
def main(): | ||
global ignore_pats, IGNORE_FILENAME, STATE_FILENAME, REPEAT, QUIET, DEBUG |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python3_{7,8} ) | ||
|
||
inherit python-single-r1 | ||
|
||
DESCRIPTION="Summarizes the contents of a syslog log file" | ||
HOMEPAGE="https://github.com/dpaleino/syslog-summary" | ||
SRC_URI="https://github.com/downloads/dpaleino/${PN}/${P}.tar.gz" | ||
|
||
LICENSE="GPL-3+" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~sparc ~x86" | ||
IUSE="" | ||
|
||
REQUIRED_USE="${PYTHON_REQUIRED_USE}" | ||
|
||
DEPEND="" | ||
RDEPEND="${PYTHON_DEPS}" | ||
|
||
PATCHES=( \ | ||
"${FILESDIR}/${P}-fix-ignore-code.patch" \ | ||
"${FILESDIR}/${P}-remove-file-magic.patch" \ | ||
"${FILESDIR}/${P}-py3.patch" \ | ||
) | ||
|
||
src_prepare() { | ||
python_fix_shebang -f syslog-summary | ||
|
||
# Sadly, the makefile is useless for us. | ||
rm Makefile || die | ||
|
||
default | ||
} | ||
|
||
src_install() { | ||
dobin syslog-summary | ||
einstalldocs | ||
doman syslog-summary.1 | ||
|
||
insinto /etc/syslog-summary | ||
doins ignore.rules | ||
} |