Arti needs to run arbitrary programs, collecting the output and dealing with the results (eg, return values, standard error and output). Capistrano provides a flexible, powerful, and convenient interface for this sort of control:

desc 'Walk the file tree, getting size information.'
task :walk_file_tree, :roles => :arti do
    cmd = 'du -ak /'
    run cmd do |channel, stream, data|
      case stream
      when :err
        puts "stderr from #{channel[:host]}: #{data}"
      when :out
        puts "stdout from #{channel[:host]}: #{data}"
    puts 'Command failed.'

Although Arti has no current need to perform these actions in parallel on remote machines, having the capability can't hurt. Arti can also use Capistrano to collect information from the target Rails server, run commands on that machine, etc.

Although termios is not required in order to use Capistrano, it is a good thing to have on Unixish machines (to hide passwords). So, on OSX, the Capistrano install looks like:

$ sudo gem install --include-dependencies termios
$ sudo gem install --include-dependencies capistrano

Dot (part of GraphViz)

Arti uses Dot to generate clickable diagrams of relationship graphs.

MySQL, ...

Like most Rails applications, Arti does not make extensive use of RDBMS capabilities. So, the choice of MySQL is rather arbitrary (and mostly based on my familiarity with it). Feel free to plug in a different database, if desired (and let me know how it works out :-).





This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r7 - 12 Jun 2008, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email