@@ -132,24 +132,32 @@ export class noderedcontribopenflowstorage {
132132 console . error ( error ) ;
133133 }
134134 }
135+ private firstrun : boolean = true ;
135136 public async _getSettings ( ) : Promise < any > {
136137 try {
137138 this . _logger . silly ( "noderedcontribopenflowstorage::_getSettings" ) ;
138139 var result = await NoderedUtil . Query ( "nodered" , { _type : "setting" , nodered_id : Config . nodered_id } , null , null , 1 , 0 , null ) ;
139140 if ( result . length === 0 ) { return { } ; }
140141
141142 var settings = JSON . parse ( result [ 0 ] . settings ) ;
142- var child_process = require ( "child_process" ) ;
143- var keys = Object . keys ( settings . nodes ) ;
144- for ( var i = 0 ; i < keys . length ; i ++ ) {
145- var key = keys [ i ] ;
146- var val = settings . nodes [ key ] ;
147- if ( [ "node-red" , "node-red-node-email" , "node-red-node-feedparser" , "node-red-node-rbe" ,
148- "node-red-node-sentiment" , "node-red-node-tail" , "node-red-node-twitter" ] . indexOf ( key ) === - 1 ) {
149- var pname = val . name + "@" + val . version ;
150- this . _logger . info ( "Installing " + pname ) ;
151- child_process . execSync ( "npm install " + pname , { stdio : [ 0 , 1 , 2 ] , cwd : this . settings . userDir } ) ;
143+ if ( this . firstrun ) {
144+ var child_process = require ( "child_process" ) ;
145+ var keys = Object . keys ( settings . nodes ) ;
146+ var modules = "" ;
147+ for ( var i = 0 ; i < keys . length ; i ++ ) {
148+ var key = keys [ i ] ;
149+ var val = settings . nodes [ key ] ;
150+ if ( [ "node-red" , "node-red-node-email" , "node-red-node-feedparser" , "node-red-node-rbe" ,
151+ "node-red-node-sentiment" , "node-red-node-tail" , "node-red-node-twitter" ] . indexOf ( key ) === - 1 ) {
152+ var pname = val . name + "@" + val . version ;
153+ // this._logger.info("Installing " + pname);
154+ // child_process.execSync("npm install " + pname, { stdio: [0, 1, 2], cwd: this.settings.userDir });
155+ modules += ( " " + pname ) ;
156+ }
152157 }
158+ this . _logger . info ( "Installing " + modules ) ;
159+ child_process . execSync ( "npm install " + modules , { stdio : [ 0 , 1 , 2 ] , cwd : this . settings . userDir } ) ;
160+ this . firstrun = false ;
153161 }
154162 this . _logger . silly ( "noderedcontribopenflowstorage::_getSettings: return result" ) ;
155163 return settings ;
0 commit comments