You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

33 lines
945 B

var assert = require("assert")
, log = require("npmlog")
, addRemoteGit = require("./add-remote-git.js")
, hosted = require("hosted-git-info")
module.exports = function maybeGithub (p, cb) {
assert(typeof p === "string", "must pass package name")
assert(typeof cb === "function", "must pass callback")
var parsed = hosted.fromUrl(p)
log.info("maybeGithub", "Attempting %s from %s", p, parsed.git())
return addRemoteGit(parsed.git(), true, function (er, data) {
if (er) {
log.info("maybeGithub", "Couldn't clone %s", parsed.git())
log.info("maybeGithub", "Now attempting %s from %s", p, parsed.sshurl())
return addRemoteGit(parsed.sshurl(), false, function (er, data) {
if (er) return cb(er)
success(parsed.sshurl(), data)
})
}
success(parsed.git(), data)
})
function success (u, data) {
data._from = u
data._fromGithub = true
return cb(null, data)
}
}