Guest User

Untitled

a guest
Feb 19th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. class Updater
  2. @base = "/Users/david/dev"
  3. @extlib = @base + "/contrib/extlib"
  4. @dm = @base + "/contrib/dm"
  5. @merb = @base + "/sources/merb"
  6.  
  7. def self.start(force_install = false)
  8. @force_install = force_install
  9. update "extlib", "#{@extlib}"
  10. update "do", "#{@dm}/do"
  11. update "dm-core", "#{@dm}/dm-core"
  12. update "dm-more", "#{@dm}/dm-more"
  13. update "merb-core", "#{@merb}/merb-core"
  14. update "merb-more", "#{@merb}/merb-more"
  15. update "merb-plugins", "#{@merb}/merb-plugins"
  16. puts "\nDone."
  17. end
  18.  
  19. private
  20.  
  21. def self.update(name, directory)
  22. puts "\n===== Updating #{name} ====="
  23. Dir.chdir(directory)
  24. result = `git pull`
  25. if result =~ /fatal/i
  26. raise "Bad. Things. Happening."
  27. elsif @force_install
  28. puts "Installing even though already up-to-date"
  29. install
  30. elsif result =~ /up-to-date/i
  31. puts "Skipping install: already up-to-date"
  32. else
  33. ask_and_install
  34. end
  35. end
  36.  
  37. def self.ask_and_install
  38. loop do
  39. puts "[i] install | [l] show log and install | [s] skip install"
  40. case readline
  41. when /^I/i
  42. install
  43. break
  44. when /^L/i
  45. git_log
  46. install
  47. break
  48. when /^S/i
  49. break
  50. else
  51. puts "Not recognized, please try again."
  52. end
  53. end
  54. end
  55.  
  56. def self.git_log
  57. run "git log"
  58. end
  59.  
  60. def self.install
  61. run "sudo rake install"
  62. end
  63.  
  64. def self.run(command)
  65. unless system(command)
  66. puts "'#{command}' failed."
  67. end
  68. end
  69.  
  70. end
  71.  
  72. Updater.start
Add Comment
Please, Sign In to add comment