41 lines
		
	
	
		
			729 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			729 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'ceedling/plugin'
 | 
						|
require 'ceedling/constants'
 | 
						|
 | 
						|
class Beep < Plugin
 | 
						|
 | 
						|
  attr_reader :config
 | 
						|
 | 
						|
  def setup
 | 
						|
    @config = {
 | 
						|
      :on_done  => ((defined? TOOLS_BEEP_ON_DONE)  ? TOOLS_BEEP_ON_DONE  : :bell  ),
 | 
						|
      :on_error => ((defined? TOOLS_BEEP_ON_ERROR) ? TOOLS_BEEP_ON_ERROR : :bell  ),
 | 
						|
    }
 | 
						|
  end
 | 
						|
 | 
						|
  def post_build
 | 
						|
    beep @config[:on_done]
 | 
						|
  end
 | 
						|
 | 
						|
  def post_error
 | 
						|
    beep @config[:on_error]
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def beep(method = :none)
 | 
						|
    case method
 | 
						|
    when :bell
 | 
						|
      if (SystemWrapper.windows?)
 | 
						|
        puts "echo '\007'"
 | 
						|
      else
 | 
						|
        puts "echo -ne '\007'"
 | 
						|
      end
 | 
						|
    when :speaker_test
 | 
						|
      `speaker-test -t sine -f 1000 -l 1`
 | 
						|
    else
 | 
						|
      #do nothing with illegal or :none
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 |