Colin's Journal

Colin's Journal: A place for thoughts about politics, software, and daily life.

February 26th, 2004

PubTal updates

I’ve finally taken the time to add a long overdue feature to PubTal, namely upload support. My development version now includes a new command ( that determines which files have changed since the last upload, and then uploads them to a server. The only upload method I’ve implemented is FTP, which is good enough for me. More upload methods can be added using plugins, should anyone care to develop them.

A winter wonderland of ice on lake Ontario.To keep things fast PubTal now uses a database (using anydbm which should mean it works everywhere) to record the MD5 checksum of every file it generates. When an upload occurs, PubTal records, on a per user per server basis, the checksum of each file it uploads. The normal operation is to find all files in the built website, and then compare their checksums out of the databases. When uploading, PubTal checks that all the directories exist on the FTP site, and then creates them if they don’t.

There are several additional options for uploads:

  • Force uploads – uploads those files that PubTal thinks are already at the lastest version.
  • Include all files – not just the ones that PubTal generated. This requires PubTal to checksum all non-generated files before comparing to the upload database.
  • Restrict uploads to a specific list of paths (i.e. specify directories and files to be considered for uploads).
  • Upload the same site to multiple different destinations.
  • ignore-filter is respected, so you can make sure that CVS and .svn files are not uploaded.

I’m pleased with the current development version; in my local tests it works very well. I’ve a few more ideas that I want to have a shot at implementing before I release this however.

(The picture is from a trip, a couple of weeks ago, to the beaches. The spray from the lake forms amazing ice coatings on the trees and rocks – click on the picture for a large version).

Comments are closed.

Copyright 2015 Colin Stewart

Email: colin at