Convert Slackware ChangeLog to various formats
Project description
slacklog provides a program and a library to convert a Slackware ChangeLog into other formats. Currently, RSS, Atom, and PyBlosxom formats are supported.
Basic usage
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 import parsers 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 = parsers.SlackLogParser.parse(read('ChangeLog.txt')) # Print a custom format 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 expect to be given Unicode input and formatters generate Unicode data.
Requirements
In addition to Python, python-dateutil is required.
Python versions 2.7 and 3.3 - 3.6 are tested, together with python-dateutil versions 2.1 - 2.6.
Installation
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.
Trying it in Docker
Here’s one way to hack on this inside a container:
$ docker run --rm -it -v $(pwd):/slacklog alpine:3.5 /bin/sh # apk add --no-cache python py-setuptools py-dateutil curl # cd /slacklog # python setup.py install # 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.
License
slacklog is Free Software, licensed under GNU General Public License (GPL), version 3 or later. See LICENSE.txt file for details.
Release history
Version 0.9.1 (2017-05-24)
This release adds checksum, identifier, and parent fields to SlackLogEntry. Also, a couple of bugs with recognizing package names was resolved.
Verions 0.9.0 (2017-04-05)
After almost six years with only maintenance releases, it’s time to move to beta.
This release switches from distutils to setuptools, and contains some refactoring to scripts (pure refactoring, no changes in the CLI).
Version 0.0.9 (2017-04-04)
This release does not add any new functionality.
The dependencies were updated: Python 2.7, 3.3 - 3.6, and python-dateutil 2.1 - 2.6. Support for Python 2.6 was dropped, not because it doesn’t work but because Python core team doesn’t support it.
The code was formatted according to PEP-8, and the example script was updated to include Slackware versions 14.0 and 14.2.
Version 0.0.8 (2014-09-28)
This release does not add any new functionality, but includes support for Python 3.
In addition, Slackware{,64} 14.1 was added to the example script, and Travis CI and ReadTheDocs were integrated (see the links at the top of the README).
Version 0.0.7 (2011-06-16)
This release adds Atom feed formatter, and fixes compatibility issue with recent ChangeLog.txt format change which caused empty entries to be generated. Also, Slackware{,64} 13.37 was added to the example script.
Version 0.0.6 (2011-03-18)
This release adds documentation.
Version 0.0.5 (2011-03-17)
This release adds the example script in source distribution, too.
Version 0.0.4 (2011-03-17)
This release contains better error handling, better compatibility with more feed readers, better support for timezones other that UTC, and an example script suitable for a cron job to update RSS feeds.
Version 0.0.3 (2011-02-21)
Added PyBlosxom formatter and fixed a couple of issues.
Version 0.0.2 (2011-01-29)
Packaging cleanups.
Version 0.0.1 (2011-01-28)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.