This script is designed to recursively crawl a directory of source files to generate a Keyboard-Marathon report for your whole project.
In does it's best to skip binary files. It will not uncompact compressed files.
To conserve ram, it will create a local berkley DB (called "marathon.db") in the current working directory. If you want to run this script on a regular basis this will vastly accelerate calculations as only new and changed files will be processed. (Deleted files will automatically be pruned from the DB and from calculations.)
The report will include the grand total distance, as well as a breakdown by file type.
Processing status is presented on STDERR. The report is output on STDOUT. So it is very easy to redirect the output to a file:
%> ./source-tree-marathon.pl /my/source/directory > report.txt
This script requires the following perl modules: File::Find, File::Slurp, Math::BigInt and Acme::KeyboardMarathon
To install Acme::KeyboardMarathon, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::KeyboardMarathon
CPAN shell
perl -MCPAN -e shell install Acme::KeyboardMarathon
For more information on module installation, please visit the detailed CPAN module installation guide.