1 |
|
2 |
|
3 |
|
4 | module.exports = edit
|
5 | edit.usage = "npm edit <pkg>"
|
6 |
|
7 | edit.completion = require("./utils/completion/installed-shallow.js")
|
8 |
|
9 | var npm = require("./npm.js")
|
10 | , path = require("path")
|
11 | , fs = require("graceful-fs")
|
12 | , editor = require("editor")
|
13 |
|
14 | function edit (args, cb) {
|
15 | var p = args[0]
|
16 | if (args.length !== 1 || !p) return cb(edit.usage)
|
17 | var e = npm.config.get("editor")
|
18 | if (!e) return cb(new Error(
|
19 | "No editor set. Set the 'editor' config, or $EDITOR environ."))
|
20 | p = p.split("/")
|
21 | .join("/node_modules/")
|
22 | .replace(/(\/node_modules)+/, "/node_modules")
|
23 | var f = path.resolve(npm.dir, p)
|
24 | fs.lstat(f, function (er) {
|
25 | if (er) return cb(er)
|
26 | editor(f, { editor: e }, function (er) {
|
27 | if (er) return cb(er)
|
28 | npm.commands.rebuild(args, cb)
|
29 | })
|
30 | })
|
31 | }
|