mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Removed CLI from repo
This commit is contained in:
		| @@ -1,53 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
|  |  | ||||||
| var path = require("path"); |  | ||||||
| var fs = require("fs"); |  | ||||||
|  |  | ||||||
| var userHome = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE; |  | ||||||
|  |  | ||||||
| var configDir = path.join(userHome,".nodered"); |  | ||||||
| var configFile = path.join(configDir,"config.json"); |  | ||||||
|  |  | ||||||
| var config; |  | ||||||
|  |  | ||||||
| function load() { |  | ||||||
|     if (config == null) { |  | ||||||
|         try { |  | ||||||
|             config = JSON.parse(fs.readFileSync(configFile)); |  | ||||||
|         } catch(err) { |  | ||||||
|             config = {}; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function save() { |  | ||||||
|     try { |  | ||||||
|         fs.mkdirSync(configDir); |  | ||||||
|     } catch(err) { |  | ||||||
|         if (err.code != "EEXIST") { |  | ||||||
|             throw err; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     fs.writeFileSync(configFile,JSON.stringify(config,null,4)); |  | ||||||
| } |  | ||||||
| module.exports = { |  | ||||||
|     unload: function() { |  | ||||||
|         config = null; |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| module.exports.__defineGetter__('target',function() { load(); return config.target|| "http://localhost:1880" }); |  | ||||||
| module.exports.__defineSetter__('target',function(v) { load(); config.target = v; save();}); |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
|   |  | ||||||
| var when = require("when"); |  | ||||||
| var request = require("request"); |  | ||||||
| var config = require("./config"); |  | ||||||
|  |  | ||||||
| module.exports = function(path, options) { |  | ||||||
|     var basePath = config.target; |  | ||||||
|     return when.promise(function(resolve,reject) { |  | ||||||
|         options.headers = options.headers||{}; |  | ||||||
|         options.headers['Accept'] = 'application/json'; |  | ||||||
|         if (options.method == 'PUT' || options.method == "POST") { |  | ||||||
|             options.headers['content-type'] = 'application/json'; |  | ||||||
|         } |  | ||||||
|         options.url = basePath+path; |  | ||||||
|          |  | ||||||
|         // Pull out the request function so we can stub it in the tests |  | ||||||
|         var requestFunc = request.get; |  | ||||||
|          |  | ||||||
|         if (options.method == 'PUT') { |  | ||||||
|             requestFunc = request.put; |  | ||||||
|         } else if (options.method == 'POST') { |  | ||||||
|             requestFunc = request.post; |  | ||||||
|         } else if (options.method == 'DELETE') { |  | ||||||
|             requestFunc = request.del; |  | ||||||
|         } |  | ||||||
|         requestFunc(options, function(error,response,body) { |  | ||||||
|             if (!error && response.statusCode == 200) { |  | ||||||
|                 resolve(JSON.parse(body)); |  | ||||||
|             } else if (error) { |  | ||||||
|                 reject(error.toString()); |  | ||||||
|             } else { |  | ||||||
|                 reject(response.statusCode+": "+body) |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| @@ -1,151 +0,0 @@ | |||||||
| #!/usr/bin/env node |  | ||||||
| ;(function() { |  | ||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
|   |  | ||||||
| var util = require("util"); |  | ||||||
| var request = require("request"); |  | ||||||
| var colors = require('colors'); |  | ||||||
| var apiRequest = require("./lib/request"); |  | ||||||
| var config = require("./lib/config"); |  | ||||||
|  |  | ||||||
| var commands = { |  | ||||||
|     "target": function() { |  | ||||||
|         var target = process.argv[3]; |  | ||||||
|         if (target) { |  | ||||||
|             if (!/^https?:\/\/.+/.test(target)) { |  | ||||||
|                 console.warn("Invalid target url"); |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             if (target.slice(-1) == "/") { |  | ||||||
|                 target = target.slice(0,target.length-1); |  | ||||||
|             } |  | ||||||
|             var oldTarget = config.target; |  | ||||||
|             config.target = target; |  | ||||||
|         } else { |  | ||||||
|             console.log("Target: ".yellow+config.target); |  | ||||||
|         } |  | ||||||
|          |  | ||||||
|     }, |  | ||||||
|     "nodes": function() { |  | ||||||
|         apiRequest('/nodes',{}).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "node": function() { |  | ||||||
|         apiRequest('/nodes/'+process.argv[3],{}).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "enable-node": function() { |  | ||||||
|         apiRequest('/nodes/'+process.argv[3],{ |  | ||||||
|             method: "PUT", |  | ||||||
|             body: JSON.stringify({enabled:true}) |  | ||||||
|         }).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "disable-node": function() { |  | ||||||
|         apiRequest('/nodes/'+process.argv[3],{ |  | ||||||
|             method: "PUT", |  | ||||||
|             body: JSON.stringify({enabled:false}) |  | ||||||
|         }).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "install": function() { |  | ||||||
|         apiRequest('/nodes',{ |  | ||||||
|             method: "POST", |  | ||||||
|             body: JSON.stringify({module:process.argv[3]}) |  | ||||||
|         }).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "remove": function() { |  | ||||||
|         apiRequest('/nodes/'+process.argv[3],{ |  | ||||||
|             method: "DELETE" |  | ||||||
|         }).then(logNodeList).otherwise(logFailure); |  | ||||||
|     }, |  | ||||||
|     "search": function() { |  | ||||||
|         var options = { |  | ||||||
|             method: "GET", |  | ||||||
|             url: 'https://registry.npmjs.org/-/_view/byKeyword?startkey=["node-red"]&endkey=["node-red",{}]&group_level=3' , |  | ||||||
|             headers: { |  | ||||||
|                 'Accept': 'application/json', |  | ||||||
|             } |  | ||||||
|         }; |  | ||||||
|         request(options, function (error, response, body) { |  | ||||||
|             if (!error && response.statusCode == 200) { |  | ||||||
|                 var info = (JSON.parse(body)).rows; |  | ||||||
|                 var filter = null; |  | ||||||
|                 if (process.argv[3]) { |  | ||||||
|                     filter = new RegExp(process.argv[3]); |  | ||||||
|                 } |  | ||||||
|                 for (var i=0;i<info.length;i++) { |  | ||||||
|                     var n = info[i]; |  | ||||||
|                     if (!filter || filter.test(n.key[1]) || filter.test(n.key[2])) { |  | ||||||
|                         console.log(n.key[1] + (" - "+ n.key[2]).grey); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } else if (error) { |  | ||||||
|                 console.log(error.toString().red); |  | ||||||
|             } else { |  | ||||||
|                 console.log((response.statusCode+": "+body).red); |  | ||||||
|             } |  | ||||||
|         });    |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function logNodeList(nodes) { |  | ||||||
|     if (!util.isArray(nodes)) { |  | ||||||
|         nodes = [nodes]; |  | ||||||
|     } |  | ||||||
|     for (var i=0;i<nodes.length;i++) { |  | ||||||
|         var n = nodes[i]; |  | ||||||
|         console.log(formatNodeInfo(n)) |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function logFailure(msg) { |  | ||||||
|     console.log(msg.red); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function formatBoolean(v,c) { |  | ||||||
|     if (v) { |  | ||||||
|         return ("["+c+"]"); |  | ||||||
|     } else { |  | ||||||
|         return ("[ ]"); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function formatNodeInfo(n) { |  | ||||||
|     var inError = n.hasOwnProperty("err"); |  | ||||||
|      |  | ||||||
|     var str = formatBoolean(n.enabled,"X")+formatBoolean(n.loaded,"L")+" "; |  | ||||||
|     str += n.id; |  | ||||||
|     if (n.enabled && n.loaded) { |  | ||||||
|         str = str.green; |  | ||||||
|     } else if (n.enabled && n.err) { |  | ||||||
|         str = str.red; |  | ||||||
|     } else { |  | ||||||
|         str = str.yellow; |  | ||||||
|     } |  | ||||||
|     if (n.module) { |  | ||||||
|         str += " ["+n.module+"]"; |  | ||||||
|     } |  | ||||||
|     str += " "+n.types.join(", "); |  | ||||||
|     if (n.err) { |  | ||||||
|         str+=" "+n.err.red; |  | ||||||
|     } |  | ||||||
|     return str; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| if (commands[process.argv[2]]) { |  | ||||||
|     commands[process.argv[2]].call(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| })(); |  | ||||||
| @@ -1,53 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
|   |  | ||||||
| var should = require("should"); |  | ||||||
| var sinon = require("sinon"); |  | ||||||
| var fs = require("fs"); |  | ||||||
|  |  | ||||||
| var config = require("../../../../red/cli/lib/config"); |  | ||||||
|  |  | ||||||
| describe("cli config", function() { |  | ||||||
|     afterEach(function() { |  | ||||||
|         config.unload(); |  | ||||||
|     }); |  | ||||||
|     it('loads preferences when target referenced', sinon.test(function() { |  | ||||||
|         this.stub(fs,"readFileSync",function() { |  | ||||||
|             return '{"target":"http://example.com:1880"}' |  | ||||||
|         }); |  | ||||||
|         config.target.should.eql("http://example.com:1880"); |  | ||||||
|     })); |  | ||||||
|     it('provide default value for target', sinon.test(function() { |  | ||||||
|         this.stub(fs,"readFileSync",function() { |  | ||||||
|             return '{}' |  | ||||||
|         }); |  | ||||||
|         config.target.should.eql("http://localhost:1880"); |  | ||||||
|     })); |  | ||||||
|     it('saves preferences when target set', sinon.test(function() { |  | ||||||
|         this.stub(fs,"readFileSync",function() { |  | ||||||
|             return '{"target":"http://another.example.com:1880"}' |  | ||||||
|         }); |  | ||||||
|         this.stub(fs,"writeFileSync",function() {}); |  | ||||||
|          |  | ||||||
|         config.target.should.eql("http://another.example.com:1880"); |  | ||||||
|         config.target = "http://final.example.com:1880"; |  | ||||||
|          |  | ||||||
|         fs.readFileSync.calledOnce.should.be.true; |  | ||||||
|         fs.writeFileSync.calledOnce.should.be.true; |  | ||||||
|          |  | ||||||
|     })); |  | ||||||
|          |  | ||||||
| }); |  | ||||||
| @@ -1,46 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
|   |  | ||||||
| var should = require("should"); |  | ||||||
| var sinon = require("sinon"); |  | ||||||
| var fs = require("fs"); |  | ||||||
| var request = require("request"); |  | ||||||
|  |  | ||||||
| var apiRequest = require("../../../../red/cli/lib/request"); |  | ||||||
| var config = require("../../../../red/cli/lib/config"); |  | ||||||
|  |  | ||||||
| describe("cli request", function() { |  | ||||||
|     var sandbox = sinon.sandbox.create(); |  | ||||||
|     before(function() { |  | ||||||
|         sandbox.stub(fs,"readFileSync",function() { |  | ||||||
|             return '{"target":"http://example.com:1880"}' |  | ||||||
|         }); |  | ||||||
|     }); |  | ||||||
|     after(function() { |  | ||||||
|         sandbox.restore(); |  | ||||||
|     }); |  | ||||||
|                  |  | ||||||
|     it('returns the json response to a get', sinon.test(function(done) { |  | ||||||
|         this.stub(request, 'get').yields(null, {statusCode:200}, JSON.stringify({a: "b"})); |  | ||||||
|              |  | ||||||
|         apiRequest("/foo",{}).then(function(res) { |  | ||||||
|             res.should.eql({a:"b"}); |  | ||||||
|             done(); |  | ||||||
|         }).otherwise(function(err) { |  | ||||||
|             done(err); |  | ||||||
|         }); |  | ||||||
|     })); |  | ||||||
| }); |  | ||||||
| @@ -1,15 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright 2014 IBM Corp. |  | ||||||
|  * |  | ||||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
|  * you may not use this file except in compliance with the License. |  | ||||||
|  * You may obtain a copy of the License at |  | ||||||
|  * |  | ||||||
|  * http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  * |  | ||||||
|  * Unless required by applicable law or agreed to in writing, software |  | ||||||
|  * distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
|  * See the License for the specific language governing permissions and |  | ||||||
|  * limitations under the License. |  | ||||||
|  **/ |  | ||||||
		Reference in New Issue
	
	Block a user