Download Build Status Docs

slacklog – Convert Slackware Changelog to various formats

slacklog provides programs and a library to convert a Slackware ChangeLogs into other formats. Currently, RSS, Atom, JSON, 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.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.

Requirements

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.

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 -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.

Authors

Original author and current maintainer is Mikko Värri (vmj@linuxbox.fi).

License

slacklog is Free Software, licensed under GNU General Public License (GPL), version 3 or later. See LICENSE.txt file for details.