Guest User

Untitled

a guest
Apr 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. require 'amazing'
  2.  
  3. CONFIG = File.expand_path("~/.awesomerc")
  4.  
  5. list = {}
  6. screen, statusbar = nil, nil
  7. File.readlines(CONFIG).each do |line|
  8. case line
  9. when /^\s*screen .*(\d+)/
  10. screen = $1.to_i
  11. list[screen] = {}
  12. when /^\s*statusbar[" ]*([^" ]+)/
  13. statusbar = $1
  14. list[screen][statusbar] = []
  15. when /^\s*(?:graph|iconbox|progressbar|textbox)[" ]*([^" ]+)/
  16. list[screen][statusbar] << $1
  17. end
  18. end
  19.  
  20. list.each do |screen, statusbars|
  21. statusbars.each do |statusbar, widgets|
  22. puts "awesome {"
  23. puts " set :screen => %s" % screen unless screen == 0
  24. puts " set :statusbar => %s" % statusbar.inspect unless statusbar == "mystatusbar"
  25. puts if screen != 0 || statusbar != "mystatusbar"
  26. widgets.each do |widget|
  27. puts " widget(%s) {" % widget.inspect
  28. if Amazing::Widgets.constants.include? widget.camel_case
  29. puts " set :module => :%s" % widget
  30. puts " set :interval => 1"
  31. Amazing::Widgets.const_get(widget.camel_case).options.each do |option, data|
  32. puts " set %s => %s" % [option.inspect, data[:default].inspect]
  33. end
  34. else
  35. puts " set :module => :noop"
  36. puts " set :interval => 1"
  37. end
  38. puts " }"
  39. puts unless widget == widgets.last
  40. end
  41. puts "}"
  42. end
  43. end
Add Comment
Please, Sign In to add comment