master/lib/guard/interactor.rb

90 lines
2.3 KiB
Ruby
Raw Normal View History

2010-10-03 21:00:33 +00:00
module Guard
module Interactor
extend self
@@locked = false
2011-08-17 08:07:30 +00:00
def listen
return if ENV["GUARD_ENV"] == 'test'
2011-08-17 08:07:30 +00:00
Thread.new do
loop do
if (entry = $stdin.gets) && !@@locked
entry.gsub! /\n/, ''
case entry
when 'quit', 'exit', 'q', 'e'
UI.info "Bye bye...", :reset => true
::Guard.listener.stop
::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :stop) }
abort
when 'reload', 'r', 'z'
::Guard.run do
::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :reload) }
end
else # run_all
2011-08-17 08:07:30 +00:00
::Guard.run do
::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :run_all) }
end
end
end
2010-10-03 21:00:33 +00:00
end
end
end
def lock
@@locked = true
end
def unlock
@@locked = false
2011-08-17 08:07:30 +00:00
end
# def run_all
# ::Guard.run do
# ::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :run_all) }
# end
# end
#
# def stop
# UI.info "Bye bye...", :reset => true
# ::Guard.listener.stop
# ::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :stop) }
# abort
# end
#
# def reload
# ::Guard.run do
# ::Guard.guards.each { |guard| ::Guard.supervised_task(guard, :reload) }
# end
# end
#
# def self.init_signal_traps
# # Run all (Ctrl-\)
# if Signal.list.has_key?('QUIT')
# Signal.trap('QUIT') do
# run_all
# end
# else
# UI.info "Your system doesn't support QUIT signal, so Ctrl-\\ (Run all) won't work"
# end
#
# # Stop (Ctrl-C)
# if Signal.list.has_key?('INT')
# Signal.trap('INT') do
# stop
# end
# else
# UI.info "Your system doesn't support INT signal, so Ctrl-C (Stop) won't work"
# end
#
# # Reload (Ctrl-Z)
# if Signal.list.has_key?('TSTP')
# Signal.trap('TSTP') do
# reload
# end
# else
# UI.info "Your system doesn't support TSTP signal, so Ctrl-Z (Reload) won't work"
# end
#
# end
2010-10-03 21:00:33 +00:00
end
end