The Evolution of Finger: configuration and packaging of the finger service

Introduction

This is the eleventh part of the Twisted tutorial Twisted from Scratch, or The Evolution of Finger.

In this part, we make it easier for non-programmers to configure a finger server, and show how to package it in the .deb and RPM package formats.

Plugins

So far, the user had to be somewhat of a programmer to be able to configure stuff. Maybe we can eliminate even that? Move old code to finger/__init__.py and...

Full source code for finger module here: finger module

finger/tap.py

And register it all:

finger/plugins.tml

And now, the following works

% mktap finger --file=/etc/users --ircnick=fingerbot
% sudo twistd -nf finger.tap

OS Integration

If we already have the finger package installed in PYTHONPATH (e.g. we added it to site-packages), we can achieve easy integration:

Debian

% tap2deb --unsigned -m "Foo <foo@example.com>" --type=python finger.tac
% sudo dpkg -i .build/*.deb

Red Hat / Mandrake

% tap2rpm --type=python finger.tac #[maybe other options needed]
% sudo rpm -i .build/*.rpm

Will properly register the tap/tac, init.d scripts, etc. for the given file.

If it doesn't work on your favorite OS: patches accepted!