Status Logger Use and Operation

Manual Pages

See Internal Details and Implementation for more information about the implementation of each component.

Getting Started

While stl may have more traditional Python packaging in the future, given the current state of development and organization, to begin using STL you should simply add the four constituent files to the same folder in you shell’s search path, by adding one of the following lines to your ~/.bashrc, ~/.bash_profile, or ~/.zshrc (or similar) file:


Then, copy the files in the stl/ directory in the stl repository to this directory. You can issue the following sequence of commands at your system prompt to download the files hosted on github:

curl >
curl >
curl >
curl >

Then create symlinks in this directory for easy use without the .py extension, with the following commands. Replace ~/scripts with the path to your personal script directory:

cd ~/scripts
ln -s stl
ln -s lnote
ln -s wc-track
ln -s sauron

Continue reading the manual pages pages the internals section for more information about the use and implementation of stl.


General Operation

stl consists of three connected Python modules/scripts that you may use either independently or in conjunction. From the highest level, these programs are:

  • sauron: A script that provides a wrapper around emacsclient, and ethe emacs notification system Sauron. Supports multiple emacs clients running on a single system/user account, and does not require a dbus configuration. This provides a programatic interface for sauron-mode.
  • stl: A script that provides a simple interface to calculate and log word counts for multi-file projects. This script does not store any information regarding projects or configuration.
  • wc-track: For running regularly as a cronjob, wc_track stores the projects dict that contains per-project configuration, and several functions for automatically running stl for each project.
  • lnote: A simple interactive script for creating arbitrary notes in the log to provide additional context.

projects Configuration

The projects dict in the wc_track file, provides a way to pre-configure wc_track as a wrapper around stl. Consider the following basic setup:

username = tychoish

projects = {
  'stl' : {
        'path' : '/home/' + username + '/projects/stl/docs/source/',
        'target' : 'projects',
        'emacs' : True,
        'quiet' : True,
        'log' : '/home/' + username + '/projects/stats-' + socket.gethostname() + '.log',
        'ext': 'txt'

See wc-track Manual and wc_track Internals for more information.