lib/guignol/shell.rb in guignol-0.1.2.1 vs lib/guignol/shell.rb in guignol-0.3.0
- old
+ new
@@ -1,50 +1,35 @@
-# Copyright (c) 2012, HouseTrip SA.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice, this
-# list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# The views and conclusions contained in the software and documentation are those
-# of the authors and should not be interpreted as representing official policies,
-# either expressed or implied, of the authors.
+require 'thor'
-require 'term/ansicolor'
-require 'guignol/commands'
-
module Guignol
- class Shell
- include Singleton
+ class Shell < Thor
+ def help(*args)
+ shell.say
+ shell.say "Guignol -- manipulate EC2 instances from your command line.", :cyan
+ shell.say
+ super
+ end
- def execute(command_name, *argv)
- command_name ||= 'help'
- unless command = Commands::Map[command_name]
- Commands::Help.new.run
- die "no such command '#{command_name}'."
- end
- command.new(*argv).run
- exit 0
+ def self.start
+ super(ARGV, :shell => shared_shell)
end
- def die(message)
- puts Term::ANSIColor.red("fatal: #{message}")
- exit 1
+ def self.shared_shell
+ @shared_shell ||= Thor::Base.shell.new
end
+
+ def self.exit_on_failure?
+ true
+ end
end
end
+
+
+require 'guignol/commands/create'
+require 'guignol/commands/kill'
+require 'guignol/commands/start'
+require 'guignol/commands/stop'
+require 'guignol/commands/list'
+require 'guignol/commands/uuid'
+require 'guignol/commands/fix_dns'
+require 'guignol/commands/clone'
+require 'guignol/commands/execute'