Class: GitDownloadStrategy

Inherits:
AbstractDownloadStrategy show all
Includes:
GitCommands
Defined in:
lib/lace/download_strategy.rb

Direct Known Subclasses

AbbrevGitDownloadStrategy

Instance Attribute Summary

Attributes inherited from AbstractDownloadStrategy

#resource, #target_folder

Instance Method Summary collapse

Methods included from GitCommands

#clone_args, #clone_repo, #git_dir, #repo_modified?, #repo_valid?, #reset, #submodules?, #update_repo, #update_submodules

Methods inherited from AbstractDownloadStrategy

#initialize, #stage, #uri

Constructor Details

This class inherits a constructor from AbstractDownloadStrategy

Instance Method Details

#fetchObject



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/lace/download_strategy.rb', line 134

def fetch
  ohai "Cloning #@uri"

  if @target_folder.exist? && repo_valid?
    puts "Updating #@target_folder"
    @target_folder.cd do
      update_repo
      reset
      update_submodules if submodules?
    end
  elsif @target_folder.exist?
    puts "Removing invalid .git repo"
    FileUtils.rm_rf @target_folder
    clone_repo
  else
    clone_repo
  end
  @target_folder
end

#nameObject



154
155
156
157
158
159
160
161
162
163
164
# File 'lib/lace/download_strategy.rb', line 154

def name
  if super
    super
  elsif @uri.include? "github.com"
     @uri.split("/")[-2]
  elsif File.directory? @uri
      File.basename(@uri)
  else
    raise "Cannot determine a proper name with #@uri"
  end
end