Merge pull request #124 from shioyama/clone_destination

Pass destination when cloning url.
This commit is contained in:
Jeremy Cook
2015-03-22 14:12:41 -04:00
2 changed files with 12 additions and 7 deletions

View File

@@ -55,8 +55,8 @@ module Homesick
git_clone "https://github.com/#{Regexp.last_match[1]}.git", git_clone "https://github.com/#{Regexp.last_match[1]}.git",
destination: destination destination: destination
elsif uri =~ /%r([^%r]*?)(\.git)?\Z/ || uri =~ /[^:]+:([^:]+)(\.git)?\Z/ elsif uri =~ /%r([^%r]*?)(\.git)?\Z/ || uri =~ /[^:]+:([^:]+)(\.git)?\Z/
destination = Pathname.new(Regexp.last_match[1]) destination = Pathname.new(Regexp.last_match[1].gsub(/\.git$/,'')).basename
git_clone uri git_clone uri, destination: destination
else else
fail "Unknown URI format: #{uri}" fail "Unknown URI format: #{uri}"
end end

View File

@@ -112,34 +112,39 @@ describe Homesick::CLI do
it 'clones git repo like git://host/path/to.git' do it 'clones git repo like git://host/path/to.git' do
expect(homesick).to receive(:git_clone) expect(homesick).to receive(:git_clone)
.with('git://github.com/technicalpickles/pickled-vim.git') .with('git://github.com/technicalpickles/pickled-vim.git',
destination: Pathname.new('pickled-vim'))
homesick.clone 'git://github.com/technicalpickles/pickled-vim.git' homesick.clone 'git://github.com/technicalpickles/pickled-vim.git'
end end
it 'clones git repo like git@host:path/to.git' do it 'clones git repo like git@host:path/to.git' do
expect(homesick).to receive(:git_clone) expect(homesick).to receive(:git_clone)
.with('git@github.com:technicalpickles/pickled-vim.git') .with('git@github.com:technicalpickles/pickled-vim.git',
destination: Pathname.new('pickled-vim'))
homesick.clone 'git@github.com:technicalpickles/pickled-vim.git' homesick.clone 'git@github.com:technicalpickles/pickled-vim.git'
end end
it 'clones git repo like http://host/path/to.git' do it 'clones git repo like http://host/path/to.git' do
expect(homesick).to receive(:git_clone) expect(homesick).to receive(:git_clone)
.with('http://github.com/technicalpickles/pickled-vim.git') .with('http://github.com/technicalpickles/pickled-vim.git',
destination: Pathname.new('pickled-vim'))
homesick.clone 'http://github.com/technicalpickles/pickled-vim.git' homesick.clone 'http://github.com/technicalpickles/pickled-vim.git'
end end
it 'clones git repo like http://host/path/to' do it 'clones git repo like http://host/path/to' do
expect(homesick).to receive(:git_clone) expect(homesick).to receive(:git_clone)
.with('http://github.com/technicalpickles/pickled-vim') .with('http://github.com/technicalpickles/pickled-vim',
destination: Pathname.new('pickled-vim'))
homesick.clone 'http://github.com/technicalpickles/pickled-vim' homesick.clone 'http://github.com/technicalpickles/pickled-vim'
end end
it 'clones git repo like host-alias:repos.git' do it 'clones git repo like host-alias:repos.git' do
expect(homesick).to receive(:git_clone).with('gitolite:pickled-vim.git') expect(homesick).to receive(:git_clone).with('gitolite:pickled-vim.git',
destination: Pathname.new('pickled-vim'))
homesick.clone 'gitolite:pickled-vim.git' homesick.clone 'gitolite:pickled-vim.git'
end end