Creating "gem install" commands from a given "gem list" output
#!/usr/bin/node
var sys = require('sys')
var exec = require('child_process').exec;
var child;
function getGemInfo(stdout){
var lines = stdout.split("\n");
var line, version, name, d, gem;
for(var i in lines){
line = lines[i];
if(line){
gem = {};
d = line.indexOf("(");
gem.name = line.substring(0,d).replace(" ","").replace("\n","");
gem.versions = getVersions(line.substring(d+1).replace(")",""))
console.log(createGemCommand(gem));
}
}
}
function getVersions(part){
var versions = part.split(",");
for(var i in versions){
versions[i] = versions[i].replace(" ","").replace("\n","");
}
return versions;
}
function createGemCommand(gem){
var base = "gem install";
var out = "";
for(var i in gem.versions){
out += base+" "+gem.name+" -v="+gem.versions[i]+"\n";
}
return out;
}
child = exec("gem list", function (error, stdout, stderr) {
if (error !== null) {
console.log('exec error: ' + error);
} else {
getGemInfo(stdout);
}
});Written by Philipp Haußleiter
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
projectcleverweb
309.1K
mcansky
156.1K
Filed Under
Did you know?
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#