master/lib/guard/cli.rb

42 lines
1.4 KiB
Ruby
Raw Normal View History

2010-10-03 21:00:33 +00:00
require 'thor'
require 'guard/version'
module Guard
class CLI < Thor
default_task :start
method_option :clear, :type => :boolean, :default => false, :aliases => '-c', :banner => "Auto clear shell before each change/run_all/reload"
method_option :notify, :type => :boolean, :default => true, :aliases => '-n', :banner => "Notifications feature (growl/libnotify)"
method_option :debug, :type => :boolean, :default => false, :aliases => '-d', :banner => "Print debug messages"
method_option :group, :type => :array, :default => [], :aliases => '-g', :banner => "Run only the passed groups"
desc "start", "Starts Guard"
2010-10-03 21:00:33 +00:00
def start
2010-10-08 13:00:45 +00:00
::Guard.start(options)
2010-10-03 21:00:33 +00:00
end
desc "version", "Prints Guard's version information"
2010-10-03 21:00:33 +00:00
def version
2010-10-08 13:00:45 +00:00
::Guard::UI.info "Guard version #{Guard::VERSION}"
2010-10-03 21:00:33 +00:00
end
map %w(-v --version) => :version
desc "init [GUARD]", "Generates a Guardfile into the current working directory, or insert the given GUARD"
2010-10-07 20:37:30 +00:00
def init(guard_name = nil)
if !File.exist?("Guardfile")
puts "Writing new Guardfile to #{Dir.pwd}/Guardfile"
FileUtils.cp(File.expand_path('../templates/Guardfile', __FILE__), 'Guardfile')
elsif guard_name.nil?
2010-10-08 13:00:45 +00:00
::Guard::UI.error "Guardfile already exists at #{Dir.pwd}/Guardfile"
2010-10-07 20:37:30 +00:00
exit 1
end
2010-10-07 20:37:30 +00:00
if guard_name
2010-10-08 13:00:45 +00:00
guard_class = ::Guard.get_guard_class(guard_name)
2010-10-07 20:37:30 +00:00
guard_class.init(guard_name)
end
end
2010-10-03 21:00:33 +00:00
end
end