class Rbdock::Application
Public Class Methods
new(url)
click to toggle source
# File lib/rbdock/application.rb, line 11 def initialize url @logger = Log4r::Logger.new("rbdock::application") @logger.info("Preparing application at #{url}") @url = url end
prepare(url)
click to toggle source
# File lib/rbdock/application.rb, line 7 def self.prepare url new(url).execute end
Public Instance Methods
checked_system(command, action)
click to toggle source
# File lib/rbdock/application.rb, line 86 def checked_system command, action if not system(command) raise StandardError, "#{action} #{@url} is failed." end end
clone_path()
click to toggle source
# File lib/rbdock/application.rb, line 65 def clone_path @clone_path ||= '.rbdock_app' end
cloned?()
click to toggle source
# File lib/rbdock/application.rb, line 57 def cloned? File.exist? clone_path end
execute()
click to toggle source
# File lib/rbdock/application.rb, line 17 def execute if local? raise ArgumentError, "Application path #{@url} is not exist" if not File.exist?(@url) @logger.debug("Use local application at #{@url}") return @url end if git? raise StandardError, "Command git not found." if `which git`.empty? @logger.debug("Use `git` to clone application") if cloned? and same_application? @logger.debug("Update application at #{@url}") git_update end if cloned? and not same_application? @logger.debug("Replace application at #{@url}") replace end if not cloned? @logger.debug("Clone application at #{@url}") git_clone end end return clone_path end
git?()
click to toggle source
# File lib/rbdock/application.rb, line 53 def git? @url.include?(".git") || @url.include?("github.com") || @url.include?("git@") end
git_clone()
click to toggle source
# File lib/rbdock/application.rb, line 69 def git_clone checked_system("git clone -q #{@url} #{clone_path}", "Clone") STDERR.puts "Clone #{@url} to #{clone_path}/" end
git_update()
click to toggle source
# File lib/rbdock/application.rb, line 74 def git_update checked_system("cd #{clone_path}; git pull -q", "Update") STDERR.puts "Update #{@url}" end
local?()
click to toggle source
# File lib/rbdock/application.rb, line 49 def local? not URI.regexp =~ @url end
replace()
click to toggle source
# File lib/rbdock/application.rb, line 79 def replace checked_system("rm -fr #{clone_path}", "Replace") git_clone STDERR.puts "Delete old application and clone #{@url} to #{clone_path}/" clone_path end
same_application?()
click to toggle source
# File lib/rbdock/application.rb, line 61 def same_application? @url == `git --git-dir=#{clone_path}/.git config --get remote.origin.url`.chomp end