Updated URL parser for setup_github_pages. Fixes #868

This commit is contained in:
Parker Moore 2012-12-20 00:37:48 -05:00
parent 33a1dbac30
commit 569ed588e3

View File

@ -382,11 +382,14 @@ task :setup_github_pages, :repo do |t, args|
else
repo_url = get_stdin("Enter the read/write url for your repository: ")
end
unless repo_url[-4..-1] == ".git"
repo_url << ".git"
end
raise "!! The repo URL that was input was malformed." unless repo_url.match(/https:\/\/github.com\/[^\/]+\/[^\/]+/) or repo_url.match(/git@github.com:[^\/]+\/[^\/]+/)
user_match = repo_url.match(/(:([^\/]+)|(github.com\/([^\/]+)))/)
user = user_match[2] || user_match[4]
branch = (repo_url.match(/\/[\w-]+.github.com/).nil?) ? 'gh-pages' : 'master'
project = (branch == 'gh-pages') ? repo_url.match(/\/([^\.]+)/)[1] : ''
project = (branch == 'gh-pages') ? repo_url.match(/\/(.+)(\.git)/)[1] : ''
url = "http://#{user}.github.com"
url += "/#{project}" unless project == ''
unless `git remote -v`.match(/origin.+?octopress.git/).nil?