Merge pull request #40 from fnichol/fix-clone-destination

Remove .git suffix on destination directory if URL ends with it.
This commit is contained in:
Yusuke Murata
2013-06-17 04:47:20 -07:00
2 changed files with 9 additions and 4 deletions

View File

@@ -3,10 +3,7 @@ class Homesick
# TODO move this to be more like thor's template, empty_directory, etc
def git_clone(repo, config = {})
config ||= {}
destination = config[:destination] || begin
repo =~ /([^\/]+)(?:\.git)?$/
$1
end
destination = config[:destination] || File.basename(repo, '.git')
destination = Pathname.new(destination) unless destination.kind_of?(Pathname)
FileUtils.mkdir_p destination.dirname

View File

@@ -39,6 +39,14 @@ describe "homesick" do
end
end
it "should clone git repo like file:///path/to.git" do
bare_repo = File.join(create_construct.to_s, "dotfiles.git")
system "git init --bare #{bare_repo} >/dev/null 2>&1"
homesick.clone "file://#{bare_repo}"
File.directory?(File.join(home.to_s, '.homesick/repos/dotfiles')).should be_true
end
it "should clone git repo like git://host/path/to.git" do
homesick.should_receive(:git_clone).with('git://github.com/technicalpickles/pickled-vim.git')