@@ -2,7 +2,6 @@ var fs = require('fs');
2
2
var path = require ( 'path' ) ;
3
3
4
4
var h = require ( '../helper' ) ;
5
- var chalk = require ( '../chalk' ) ;
6
5
var log = require ( '../log' ) ;
7
6
var Plugin = require ( '../plugin' ) ;
8
7
var session = require ( '../session' ) ;
@@ -38,17 +37,33 @@ var cmd = {
38
37
}
39
38
} ;
40
39
40
+ function install ( name ) {
41
+ // copy to plugins folder
42
+ var newname = path . join ( Plugin . dir , path . basename ( name ) ) ;
43
+ var src = fs . createReadStream ( name ) ;
44
+ src . pipe ( fs . createWriteStream ( newname ) ) ;
45
+ src . on ( 'end' , function ( ) {
46
+ log . debug ( 'copied to ' + newname ) ;
47
+
48
+ // install dependencies
49
+ var plugin = require ( path . relative ( __dirname , newname ) ) ;
50
+ if ( plugin . deps . length === 0 ) return ;
51
+
52
+ var cmd = 'npm install --save ' + plugin . deps . join ( ' ' ) ;
53
+ log . debug ( cmd ) ;
54
+ require ( 'child_process' ) . execSync ( cmd , {
55
+ cwd : path . resolve ( __dirname , '../..' )
56
+ } ) ;
57
+ } ) ;
58
+ }
59
+
41
60
cmd . handler = function ( argv ) {
42
61
session . argv = argv ;
43
62
var name = argv . name ;
44
63
45
64
if ( argv . install ) {
46
- if ( ! name || ! fs . existsSync ( name ) )
47
- return log . error ( 'Plugin not found!' ) ;
48
-
49
- var newName = path . join ( Plugin . dir , path . basename ( name ) ) ;
50
- fs . createReadStream ( name ) . pipe ( fs . createWriteStream ( newName ) ) ;
51
- return ;
65
+ if ( ! name || ! fs . existsSync ( name ) ) return log . error ( 'Plugin not found!' ) ;
66
+ return install ( name ) ;
52
67
}
53
68
54
69
var plugins = Plugin . plugins ;
@@ -65,8 +80,7 @@ cmd.handler = function(argv) {
65
80
return ;
66
81
}
67
82
68
- if ( plugins . length === 0 )
69
- return log . error ( 'Plugin not found!' ) ;
83
+ if ( plugins . length === 0 ) return log . error ( 'Plugin not found!' ) ;
70
84
71
85
var plugin = plugins [ 0 ] ;
72
86
var oldname = Plugin . fullpath ( plugin . file ) ;
0 commit comments