1.0.45 • Published 10 years ago
cluc v1.0.45
Cluc
Command line under control, a library to ease usage of command lines.
Demo
with child_process
var Cluc = require('cluc');
new Cluc()
.exec('ls -alh' , function(err,stdout,stderr){
this.confirm(/vagrant/, 'Username should display on unix.');
this.warn(/root/, 'Some files does not belong vagrant users.').or(function(err){
return new Error(err);
});
})
.stream('ls -alh' , function(err,stdout,stderr){
this.confirm(/vagrant/, 'Username should display on unix.');
this.warn(/root/, 'Some files does not belong vagrant users.');
}).stream('sudo apt-get remove apache2 -y', function(){
this.progress(/Reading (:<title>[\w\s]+)[ .]*(:<current>\d+)%/);
this.mustnot(/0 to remove/, 'no package to remove found');
this.confirm(/([1-9]+) to remove/, ' found %s package to remove');
this.success(/(Removing [^ ]+\s+[.]+)/i, 'Package removed !');
this.warn(/(Unable to locate package )/i, 'Package not found');
}).stream('sudo apt-get install apache2 -y', function(){
this.mustnot(/You should explicitly select one to install/, "too many results");
this.mustnot(/has no installation candidate/, "can not install httpd");
this.watch(/Need to get ([0-9- ,-]+ [a-z]+) of archives/i);
this.watch(/After this operation, ([0-9- ,-]+ [a-z]+) of additional disk space will be used/i);
this.spin(/((Reading|Building).+)/i);
this.spin(/^\s*([0-9]+%)/i);
this.warn(/(is already the newest version)/i, 'Already installed');
this.warn(/(0 newly installed)/i, 'Package not installed');
this.confirm(/([^ /]+)\.deb/i);
this.success(/(1 newly installed)/i, 'Package installed !');
//this.redo(2);
//this.display();
}).download('/home/vagrant/test', __dirname+'/fixtures/test.bashrc', function(err){
if(err) log.error(err);
}).record(require('fs').createWriteStream('some/output.log'))
.run( new Cluc.transports.process(), function(){
console.log('done');
});with ssh
var Cluc = require('cluc');
new Cluc()
.exec('ls -alh' , function(err,stdout,stderr){
this.confirm(/vagrant/, 'Username should display on unix.');
this.warn(/root/, 'Some files does not belong vagrant users.');
this.display();
})
.stream('ls -alh' , function(err,stdout,stderr){
this.confirm(/vagrant/, 'Username should display on unix.');
this.warn(/root/, 'Some files does not belong vagrant users.');
})
.run( new Cluc.transports.ssh(server), function(){
console.log('done');
});API
Cluc
Cluc.transports
Cluc.output
Cluc.rules
Cluc.rules.mustCluc.rules.successCluc.rules.mustnotCluc.rules.confirmCluc.rules.warnCluc.rules.watchCluc.rules.answerCluc.rules.display
ClucChildProcess
ClucContext
ClucContext.initClucContext.pushRuleClucContext.mustClucContext.successClucContext.confirmClucContext.mustnotClucContext.warnClucContext.watchClucContext.answerClucContext.displayClucContext.redo
ClucSsh
ClucSSHContext
ClucSSHContext.initClucSSHContext.pushRuleClucSSHContext.isClucSSHContext.mustClucSSHContext.successClucSSHContext.confirmClucSSHContext.mustnotClucSSHContext.warnClucSSHContext.watchClucSSHContext.answerClucSSHContext.displayClucSSHContext.redo
ClucRule
ClucMust
ClucSuccess
ClucMustNot
ClucConfirm
ClucWarn
ClucWatch
ClucAnswer
ClucDisplay
Status
In development. It needs some tests. It misses putFile and readDir implementations. Documentation update.
1.0.45
10 years ago
1.0.44
10 years ago
1.0.43
10 years ago
1.0.42
10 years ago
1.0.41
10 years ago
1.0.40
10 years ago
1.0.39
10 years ago
1.0.38
10 years ago
1.0.37
10 years ago
1.0.36
10 years ago
1.0.35
10 years ago
1.0.34
10 years ago
1.0.33
10 years ago
1.0.32
10 years ago
1.0.31
10 years ago
1.0.30
10 years ago
1.0.29
10 years ago
1.0.28
10 years ago
1.0.27
10 years ago
1.0.26
10 years ago
1.0.25
11 years ago
1.0.24
11 years ago
1.0.23
11 years ago
1.0.22
11 years ago
1.0.21
11 years ago
1.0.20
11 years ago
1.0.19
11 years ago
1.0.18
11 years ago
1.0.17
11 years ago
1.0.5
11 years ago
1.0.4
11 years ago
1.0.2
11 years ago
1.0.1
11 years ago