40 lines
		
	
	
		
			728 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			728 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
 | 
