npm
Version:
A package manager for node
39 lines (30 loc) • 970 B
JavaScript
// turns out tagging isn't very complicated
// all the smarts are in the couch.
module.exports = tag
tag.usage = "npm tag <project>@<version> [<tag>]"
tag.completion = require("./unpublish.js").completion
var npm = require("./npm.js")
, mapToRegistry = require("./utils/map-to-registry.js")
, npa = require("npm-package-arg")
, semver = require("semver")
function tag (args, cb) {
var thing = npa(args.shift() || "")
, project = thing.name
, version = thing.rawSpec
, t = args.shift() || npm.config.get("tag")
t = t.trim()
if (!project || !version || !t) return cb("Usage:\n"+tag.usage)
if (semver.validRange(t)) {
var er = new Error("Tag name must not be a valid SemVer range: " + t)
return cb(er)
}
mapToRegistry(project, npm.config, function (er, uri, auth) {
if (er) return cb(er)
var params = {
version : version,
tag : t,
auth : auth
}
npm.registry.tag(uri, params, cb)
})
}