Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRebecca Turner <turner@mikomi.org>2014-10-28 05:36:22 +0300
committerRebecca Turner <me@re-becca.org>2015-06-26 03:26:37 +0300
commit7113d607c4e99ba39f9c0d3b850f4a72e8004b74 (patch)
tree0677f0b3fd9742c99e376f556da50422e536f45f /lib/bugs.js
parent0608ec80f420bcce4bda32e7935311063a271e10 (diff)
Update github specific code to be git host agnostic
Diffstat (limited to 'lib/bugs.js')
-rw-r--r--lib/bugs.js41
1 files changed, 9 insertions, 32 deletions
diff --git a/lib/bugs.js b/lib/bugs.js
index 306d9bb4b..f1a4d44a6 100644
--- a/lib/bugs.js
+++ b/lib/bugs.js
@@ -1,4 +1,3 @@
-
module.exports = bugs
bugs.usage = "npm bugs <pkgname>"
@@ -6,11 +5,10 @@ bugs.usage = "npm bugs <pkgname>"
var npm = require("./npm.js")
, log = require("npmlog")
, opener = require("opener")
- , path = require("path")
- , readJson = require("read-package-json")
- , npa = require("npm-package-arg")
- , fs = require("fs")
+ , hostedGitInfo = require('hosted-git-info')
+ , fetchPackageMetadata = require("./fetch-package-metadata.js")
, mapToRegistry = require("./utils/map-to-registry.js")
+ , registry = npm.registry
bugs.completion = function (opts, cb) {
// FIXME: there used to be registry completion here, but it stopped making
@@ -19,17 +17,10 @@ bugs.completion = function (opts, cb) {
}
function bugs (args, cb) {
- var n = args.length && npa(args[0]).name || "."
- fs.stat(n, function (er, s) {
- if (er) {
- if (er.code === "ENOENT") return callRegistry(n, cb)
- return cb(er)
- }
- if (!s.isDirectory()) return callRegistry(n, cb)
- readJson(path.resolve(n, "package.json"), function(er, d) {
- if (er) return cb(er)
- getUrlAndOpen(d, cb)
- })
+ var n = args.length ? args[0] : "."
+ fetchPackageMetadata(n, ".", function(er, d) {
+ if (er) return cb(er)
+ getUrlAndOpen(d, cb)
})
}
@@ -43,10 +34,8 @@ function getUrlAndOpen (d, cb) {
if (Array.isArray(repo)) repo = repo.shift()
if (repo.hasOwnProperty("url")) repo = repo.url
log.verbose("bugs", "repository", repo)
- if (repo && repo.match(/^(https?:\/\/|git(:\/\/|@))github.com/)) {
- url = repo.replace(/^git(@|:\/\/)/, "https://")
- .replace(/^https?:\/\/github.com:/, "https://github.com/")
- .replace(/\.git$/, "")+"/issues"
+ if (bugs && hostedGitInfo.fromUrl(bugs)) {
+ url = hostedGitInfo.fromUrl(bugs).bugs()
}
}
if (!url) {
@@ -55,15 +44,3 @@ function getUrlAndOpen (d, cb) {
log.silly("bugs", "url", url)
opener(url, { command: npm.config.get("browser") }, cb)
}
-
-function callRegistry (name, cb) {
- mapToRegistry(name, npm.config, function (er, uri, auth) {
- if (er) return cb(er)
-
- npm.registry.get(uri + "/latest", { auth : auth }, function (er, d) {
- if (er) return cb(er)
-
- getUrlAndOpen(d, cb)
- })
- })
-}