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