Guest User

Untitled

a guest
May 20th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. #!/usr/bin/ruby
  2.  
  3. Dir.chdir(File.dirname(__FILE__)+"/..")
  4.  
  5. POLL_DIRECTORIES = %w(jaf-docs/content-blocks/)
  6. POLL_TIME = 0.9
  7.  
  8. @options = {}
  9.  
  10. ARGV.each do |arg|
  11. if arg =~ /^--([A-Za-z-]+)/
  12. @options[$1.to_sym] = true
  13. end
  14. end
  15.  
  16. @states = {}
  17. def check_for_changes
  18.  
  19. changes = []
  20. Dir[*POLL_DIRECTORIES.map{|i| "#{i}/**/*"}].each do |file|
  21. new_time = File.stat(file).mtime
  22. if @states[file] != new_time
  23. @states[file] = new_time
  24. changes << file
  25. end
  26. end
  27. changes
  28. end
  29.  
  30. def emphasized(m)
  31. "\e[1;1m\e[41m \e[0m \e[1;1m\e[1m #{m} \e[0m"
  32. end
  33.  
  34. def escape_quotes(s)
  35. s.gsub(/'/) { |c| "\\#{c}" }
  36. end
  37.  
  38. def verbose?
  39. not @options[:verbose].nil?
  40. end
  41.  
  42. loop do
  43. sleep POLL_TIME
  44. begin
  45. changes = check_for_changes
  46. unless changes.empty?
  47. changes.each do |change|
  48. name = File.basename(change.sub(File.extname(change), ''))
  49. id = name[/\d+/]
  50. content = File.read(change)
  51. $stderr.puts emphasized("Updating content_block #{id}")
  52. sql = "UPDATE content_blocks SET content = '#{escape_quotes(content)}' WHERE id=#{id}"
  53. puts "Running sql statement:\n#{sql}" if verbose?
  54. output = IO.popen("mysql -u root within3_development", 'w') do |io|
  55. io << sql
  56. end
  57. $stderr.puts emphasized("done")
  58. end
  59. end
  60. end
  61. end
Add Comment
Please, Sign In to add comment