Remove .git suffix on destination directory if URL ends with it.

For example, the following:

    homesick clone git://github.com/technicalpickles/pickled-vim.git

should produce a castle directory of:

    $HOME/.homesick/repos/pickled-vim
This commit is contained in:
Fletcher Nichol
2013-06-16 10:47:53 -06:00
committed by thilko
parent c5b7dd2918
commit 1518cb1155
2 changed files with 9 additions and 4 deletions

View File

@@ -4,10 +4,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

@@ -40,6 +40,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')