Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cluc

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cluc

command line under control

  • 1.0.28
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
31
increased by1450%
Maintainers
1
Weekly downloads
 
Created
Source

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
ClucChildProcess
ClucContext
ClucSsh
ClucSSHContext
ClucRule
ClucMust
ClucSuccess
ClucMustNot
ClucConfirm
ClucWarn
ClucWatch
ClucAnswer
ClucDisplay

Status

In development. It needs some tests. It misses putFile and readDir implementations. Documentation update.

FAQs

Package last updated on 20 May 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc