1 |
|
2 |
|
3 | npm = require("npm")
|
4 | pkg = process.env.npm_package_name
|
5 |
|
6 | unless pkg
|
7 | console.error "Must use via package.json's scripts.install - defaults to name."
|
8 | process.exit(1)
|
9 |
|
10 |
|
11 | unlessGloballyInstalled = (pkg, cb) ->
|
12 | npm.load (err, npm) ->
|
13 | console.error err if err?
|
14 | npm.config.set("global", true)
|
15 | npm.config.set("json", true)
|
16 | npm.config.set("depth", 0)
|
17 | npm.commands.ls [pkg], true, (err, data, lite) ->
|
18 | console.error err if err?
|
19 |
|
20 | if Object.keys(lite).length is 0 then cb(npm)
|
21 |
|
22 | unlessGloballyInstalled pkg, (npm) ->
|
23 | console.log "Package #{pkg} insists to be globally installed, please wait..."
|
24 | npm.config.set("global", true)
|
25 | npm.config.set("json", false)
|
26 | npm.commands.install [pkg], (err, data, lite) ->
|
27 | console.error err if err?
|
28 | console.log()
|