beep.rb 729 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. require 'ceedling/plugin'
  2. require 'ceedling/constants'
  3. class Beep < Plugin
  4. attr_reader :config
  5. def setup
  6. @config = {
  7. :on_done => ((defined? TOOLS_BEEP_ON_DONE) ? TOOLS_BEEP_ON_DONE : :bell ),
  8. :on_error => ((defined? TOOLS_BEEP_ON_ERROR) ? TOOLS_BEEP_ON_ERROR : :bell ),
  9. }
  10. end
  11. def post_build
  12. beep @config[:on_done]
  13. end
  14. def post_error
  15. beep @config[:on_error]
  16. end
  17. private
  18. def beep(method = :none)
  19. case method
  20. when :bell
  21. if (SystemWrapper.windows?)
  22. puts "echo '\007'"
  23. else
  24. puts "echo -ne '\007'"
  25. end
  26. when :speaker_test
  27. `speaker-test -t sine -f 1000 -l 1`
  28. else
  29. #do nothing with illegal or :none
  30. end
  31. end
  32. end