class Codepipe::Sequence
Public Class Methods
source_paths()
click to toggle source
github.com/erikhuda/thor/blob/master/lib/thor/actions.rb#L49
# File lib/codepipe/sequence.rb, line 12 def self.source_paths [File.expand_path("../../template", __FILE__)] end
Private Instance Methods
full_repo_name()
click to toggle source
# File lib/codepipe/sequence.rb, line 41 def full_repo_name full_repo = options[:template].split("/")[-2..-1].join("/") full_repo = full_repo.split(":").last full_repo.sub(".git", "") end
git_installed?()
click to toggle source
# File lib/codepipe/sequence.rb, line 57 def git_installed? system("type git > /dev/null") end
override_source_paths(*paths)
click to toggle source
# File lib/codepipe/sequence.rb, line 17 def override_source_paths(*paths) # Using string with instance_eval because block doesnt have access to # path at runtime. self.class.instance_eval %{ def self.source_paths #{paths.flatten.inspect} end } end
repo_url()
click to toggle source
normalize repo_url
# File lib/codepipe/sequence.rb, line 48 def repo_url template = options[:template] if template.include?('github.com') template # leave as is, user has provided full github url else "https://github.com/#{template}" end end
sh(command)
click to toggle source
# File lib/codepipe/sequence.rb, line 61 def sh(command) puts "=> #{command}" system(command) end
sync_template_repo()
click to toggle source
# File lib/codepipe/sequence.rb, line 27 def sync_template_repo unless git_installed? abort "Unable to detect git installation on your system. Git needs to be installed in order to use the --template option." end template_path = "#{ENV['HOME']}/.codebuild/templates/#{full_repo_name}" if File.exist?(template_path) sh("cd #{template_path} && git pull") else FileUtils.mkdir_p(File.dirname(template_path)) sh("git clone #{repo_url} #{template_path}") end end