diff --git a/bin/hobo b/bin/hobo new file mode 100755 index 000000000..7799f7502 --- /dev/null +++ b/bin/hobo @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +begin + require File.expand_path(File.join(File.dirname(__FILE__), "../vendor/gems/ruby/1.8/environment")) +rescue LoadError +end +require 'git-style-binary/command' + +GitStyleBinary.primary do + version "Somewhere between 0 and 0.1" + + run { educate } +end \ No newline at end of file diff --git a/bin/hobo-up b/bin/hobo-up new file mode 100755 index 000000000..9316d7959 --- /dev/null +++ b/bin/hobo-up @@ -0,0 +1,26 @@ +#!/usr/bin/env ruby +begin + require File.expand_path(File.join(File.dirname(__FILE__), "../vendor/gems/ruby/1.8/environment")) +rescue LoadError +end + +require 'git-style-binary/command' + +# Get hobo +hobodir = File.join(File.dirname(__FILE__), '..', 'lib') +$:.unshift(hobodir) unless $:.include?(hobodir) +require 'hobo' + +GitStyleBinary.command do + short_desc "create the hobo environment" + banner <<-EOS +Usage: #{command.full_name} #{all_options_string} + +Create the hobo environment. + +EOS + + run do |command| + Hobo::VM.up + end +end \ No newline at end of file diff --git a/lib/hobo.rb b/lib/hobo.rb index f35781727..8d1c9e15c 100644 --- a/lib/hobo.rb +++ b/lib/hobo.rb @@ -5,9 +5,11 @@ PROJECT_ROOT = File.join(libdir, '..') require 'ostruct' require 'ftools' require 'logger' +require 'virtualbox' require 'hobo/config' require 'hobo/env' require 'hobo/ssh' +require 'hobo/vm' # TODO: Make this configurable log_output = ENV['HOBO_ENV'] == 'test' ? nil : STDOUT diff --git a/lib/hobo/config.rb b/lib/hobo/config.rb index 7b16d6439..aee924000 100644 --- a/lib/hobo/config.rb +++ b/lib/hobo/config.rb @@ -1,6 +1,4 @@ module Hobo - - module_function def config diff --git a/lib/hobo/ssh.rb b/lib/hobo/ssh.rb index db25bca68..418f98d6b 100644 --- a/lib/hobo/ssh.rb +++ b/lib/hobo/ssh.rb @@ -1,6 +1,6 @@ module Hobo class SSH - SCRIPT = File.join(File.dirname(__FILE__), '..', '..', 'bin', 'hobo-ssh-expect.sh') + SCRIPT = File.join(File.dirname(__FILE__), '..', '..', 'script', 'hobo-ssh-expect.sh') def self.connect(opts={}) Kernel.exec "#{SCRIPT} #{uname(opts)} #{pass(opts)} #{host(opts)} #{port(opts)}".strip diff --git a/lib/hobo/vm.rb b/lib/hobo/vm.rb new file mode 100644 index 000000000..98503de15 --- /dev/null +++ b/lib/hobo/vm.rb @@ -0,0 +1,15 @@ +module Hobo + class VM + class <