slacklog provides programs and a library to convert a Slackware ChangeLogs into other formats. Currently, RSS, Atom, JSON, and PyBlosxom formats are supported.
Source code: https://github.com/vmj/slacklog
Builds status: https://travis-ci.org/vmj/slacklog
Documentation: https://slacklog.readthedocs.org
Typical usage of the program looks like this:
$ slacklog2rss --changelog slackware-current/ChangeLog.txt \
--encoding iso8859-1 \
--out ~/public_html/slackware-current.rss \
--slackware "Slackware current" \
--rssLink "http://linuxbox.fi/~vmj/slackware-current.rss" \
--description "Slackware current activity" \
--managingEditor "vmj@linuxbox.fi (Mikko Värri)" \
--webMaster "vmj@linuxbox.fi (Mikko Värri)"
The included Python library provides the ability to make custom formats easily:
#!/usr/bin/env python
from __future__ import print_function
import codecs
import locale
from slacklog.parsers import SlackLogParser
def read(file):
'''Return file contents as Unicode.'''
return codecs.open(file, 'r', 'iso8859-1').read()
def write(str):
'''Print out in preferred encoding.'''
print(str.encode(locale.getpreferredencoding()))
# Parse the ChangeLog
log = SlackLogParser().parse(read('ChangeLog.txt'))
# Just an example of walking the log tree and print it out
for entry in log.entries:
write(u'[%s] %s\n' % (entry.timestamp.isoformat(), entry.description))
for pkg in entry.pkgs:
write(u'%s:%s' % (pkg.pkg, pkg.description))
Note that slacklog package deals solely in Unicode; parser expects to be given Unicode input and formatters generate Unicode data.
In addition to Python, python-dateutil is required.
Python versions 2.7 and 3.4 - 3.7 are tested, together with python-dateutil versions 2.1 - 2.8.
Use either pip install slacklog
or download the source archive and use python setup.py install
.
The source code is available at Python Package Index (PyPI) or, if you want the unreleased version, from Github git repository.
Here's one way to hack on this inside a container:
$ docker run --rm -it -v $(pwd):/slacklog -w /slacklog python:3.7-alpine3.8 sh
# apk add --no-cache curl
# pip install python-dateutil==2.7.3
# python setup.py install
# sh examples/fetch-changelogs.sh
# sh examples/update-slacklog-rss.sh
Obviously, you need Docker installed and working, and I'm assuming you run those commands in the git clone.
Original author and current maintainer is Mikko Värri (vmj@linuxbox.fi).
slacklog is Free Software, licensed under GNU General Public License (GPL), version 3 or later. See LICENSE.txt file for details.