403Webshell
Server IP : 157.230.181.24  /  Your IP : 216.73.217.11
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64
User :  ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/vhosts/convo/node_modules/noptify/actions/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/vhosts/convo/node_modules/noptify/actions/collectable.js
var fs = require('fs');

// Collectable Mixin
//
// Provides utility methods to read from stdin and remaining arguments.
var collectable = module.exports;

// XXX: tomdocify, generate in readme

collectable.stdin = function stdin(force, done) {
  if(!done) done = force, force = false;
  var argv = this.nopt.argv;
  var self = this;
  done = done || function(err) { err && self.emit('error', err); };

  this._readFromStdin = true;

  // not parsed, register done to be read when parse is called
  if(!argv) {
    this.once('stdin', done);
    return this;
  }

  // only read from stdin when no reamining args and not forced
  if(!argv.remain.length || force) {
    this.readStdin(done);
  }

  return this;
};

// Read files from remaining args, concat the result and call back the `done`
// function with the concatanated result and the list of files.
collectable.files = function files(done) {
  var argv = this.nopt.argv;
  var self = this;
  done = done || function(err) { err && self.emit('error', err); };

  // not parsed, register done to be read when parse is called
  if(!argv) {
    this.once('files', done);
    return this;
  }

  // only read files when we actually have files to read from
  if(argv.remain.length) {
    this.readFiles(argv.remain, done);
  }

  return this;
};

collectable.readStdin = function readStdin(done) {
  var data = '';
  var self = this;
  process.stdin.setEncoding('utf8');
  process.stdin.on('error', done);
  process.stdin.on('data', function(chunk){
    data += chunk;
    self.emit('stdin:data', chunk);
  }).on('end', function(){
    self.emit('stdin', null, data);
    done(null, data);
  }).resume();
  return this;
};

// Asynchronous walk of the remaining args, reading the content and returns
// the concatanated result.
collectable.readFiles = function readFiles(filepaths, done) {
  var data = '';
  var self = this;
  var files = filepaths.slice(0);
  (function read(file) {
    if(!file) {
      self.emit('files', null, data, filepaths);
      return done(null, data, filepaths);
    }
    fs.readFile(file, 'utf8', function(err, body) {
      if(err) return done(err);
      data += body;
      self.emit('files:data', body);
      read(files.shift());
    });
  })(files.shift());
  return this;
};

// Collect data either from stdin or the list of remaining args
collectable.collect = function collect(done) {
  return this.stdin(done).files(done);
};


Youez - 2016 - github.com/yon3zu
LinuXploit