hybridgroup/artoo

View on GitHub
bin/artoo

Summary

Maintainability
Test Coverage
#!/usr/bin/env ruby
require 'rubygems'
require 'thor'
require 'thor/group'
require 'artoo/robot'
require 'artoo/commands/generate'
require 'artoo/commands/commands'
require 'artoo/commands/install'
require 'artoo/commands/socket'

Celluloid.logger = nil

# load main commands
module CLI
  class Root < Thor
    include Thor::Actions

    desc 'version', 'Displays the current version'
    def version
      say Artoo::VERSION
    end

    desc "console ROBOT", "Run a robot using the Robi console"
    def console(robot)
      run("robi #{robot}")
    end

    desc "start ROBOT", "Run a robot"
    option :delay, :default => 0, :desc => "Number of seconds to wait for connections"
    def start(robot)
      say "Starting robot..."
      delay = options[:delay].to_i
      sleep(delay) if delay > 0
      run("ruby #{robot}")
    end

    desc "generate <SUBCOMMAND> ...ARGS", "Generates a new robot or adaptor"
    subcommand "generate", Artoo::Commands::Generate

    desc "install <SUBCOMMAND> ...ARGS", "Installs utility programs, like socat"
    subcommand "install", Artoo::Commands::Install
  end
end

# require any custom commands installed by artoo adaptor or driver gems
Dir["#{Artoo::Commands::Commands.install_dir}/*.rb"].each {|file| require file }

CLI::Root.start