Example #1
0
    return function * (){
        barts = barts || (yield fs.readdir(path_to_barts)).map(function(path){
            return path.replace(/\.cow$/, '');
        });

        return selectBart();
    };
Example #2
0
/**
 * 获得文件树结构
 *
 */
function* getTree(file){

  var files = yield fs.readdir(file);
  var exts = ['.png', '.gif', '.jpg'];
  var tree = [];

  for (var i = 0; i < files.length; i++) {
    var item = files[i];
    var ext = path.extname(item);
    if (exts.indexOf(ext) !== -1) {
      tree.push(item);
      continue;
    }

    var dir = path.join(file, item);
    var stat = yield fs.stat(dir);
    if (stat.isDirectory()) {
      var dirs = yield getTree(dir);
      tree = tree.concat(dirs.map(function(filename){
        return item + '/' + filename;
      }));
    }
  }

  return tree;
}
function *list () {
  var folder = configuration.get("tvshowsFolder");
  var downloadedFiles = yield cfs.readdir(folder);
  var downloadedDirectories = yield filter(downloadedFiles, function* (file) {
    var stat = yield cfs.stat(path.join(folder, file));
    return stat.isDirectory();
  });
  return downloadedDirectories;
}
Example #4
0
module.exports = function *() {
  const strategyDir = yield fs.readdir(gekkoRoot + 'strategies');
  const strats = strategyDir
    .filter(f => _.last(f, 3).join('') === '.js')
    .map(f => {
      return { name: f.slice(0, -3) }
    });

  // for every strat, check if there is a config file and add it
  const stratConfigPath = gekkoRoot + 'config/strategies';
  const strategyParamsDir = yield fs.readdir(stratConfigPath);

  for(let i = 0; i < strats.length; i++) {
    let strat = strats[i];
    if(strategyParamsDir.indexOf(strat.name + '.toml') !== -1)
      strat.params = yield fs.readFile(stratConfigPath + '/' + strat.name + '.toml', 'utf8')
    else
      strat.params = '';
  }

  this.body = strats;
}
Example #5
0
 return function *routes(next){
   var app = this.app;
   var paths = yield fs.readdir(path);
   paths.forEach(function(file){
     if(file.substr(file.lastIndexOf('.') + 1) === 'js'){
       var name = file.replace('.js', '');
       var methods = require(path + file);
       (file == 'index.js') ? app.resource('', require(path + file)) : app.resource(name, require(path + file));
     }
   });
   this.controllers = Controllers;
   yield next;
 }
Example #6
0
router.all('/api/files/list',function* (next) {
    var result = [];
    var files = yield fs.readdir(path.join(__dirname, '../upload'));
    for(var i=0;i<files.length;i++) {
        var file = files[i];
        var stat = yield fs.stat(path.join(__dirname, '../upload/'+file));
        result.push({
            name:file,
            size:stat.size,
            date:stat.birthtime
        });
    }
    this.body = result;
});
Example #7
0
require('co')(function *() {
  var fs = require('co-fs')
    , server_path = __dirname + '/..'
    , targets = [
      server_path + '/model'
    ];
  for (var i = 0; i < targets.length; i++) {
    var files = yield fs.readdir(targets[i]);
    for (var n = 0; n < files.length; n++) {
      if (/\.js$/.test(files[n])) {
        require(targets[i] + '/' + files[n]);
      }
    }
  }
})();
Example #8
0
 loadTpoNames: function *() {
   if (cachedTpoNames_) {
     return cachedTpoNames_;
   }
   var files = yield fs.readdir(__dirname + '/data/reading/');
   var retFiles = [];
   files.forEach(function(file) {
     var fileName = path.basename(file);
     if (fileName.startsWith('reading_tpo')) {
       retFiles.push(fileName.substring(
           'reading_'.length, fileName.indexOf('.')));
     }
   });
   retFiles.sort(compareTpoName_);
   cachedTpoNames_ = retFiles;
   return retFiles;
 },
function * rmdir(dir) {
    var list = yield fs.readdir(dir);
    var len = list.length;
    while (len--) {
        var filename = path.join(dir, list[len]);
        var stat = yield fs.stat(filename);

        if (filename == "." || filename == "..") {
            // pass these files
        } else if (stat.isDirectory()) {
            // rmdir recursively
            yield rmdir(filename);
        } else {
            // rm fiilename
            yield fs.unlink(filename);
        }
    }
    yield fs.rmdir(dir);
};
Example #10
0
function *count(dirname) {
  var files = yield fs.readdir(dirname);

  for (var i = 0; i < files.length; i++) {
    var filename = files[i];
    var filepath = path.join(dirname, filename);
    var stat = yield fs.stat(filepath);

    if (!stat.isFile() && utils.validFolder(filename)) {
      yield *count(filepath);
      continue;
    }

    if (utils.isJs(filename)) {
      var content = yield fs.readFile(filepath, 'utf8');
      console.log('%s has %d lines', filepath, content.split('\n').length);
    }
  }
}
Example #11
0
module.exports = co.wrap(function* requireAll(folderPath, process) {

	let allModules = [];

	let allFiles = yield fs.readdir(folderPath);
	let jsFiles = [];
	for(let i=0; i<allFiles.length; i++) {
		let file = allFiles[i];
		if (file.indexOf('.') !== 0 && file.substr(-3)==='.js' && !(yield fs.lstat(path.join(folderPath, file))).isDirectory()) {
			jsFiles.push(file);
		}
	}
	for(let i=0; i<jsFiles.length; i++) {
		let file = jsFiles[i];
		var moduleName = file.substr(0, file.indexOf('.'));
		var module = require(path.join(folderPath, moduleName));
		if(process) {
			co.wrap(process)(module);
		}
		allModules.push(module);
	}

	return allModules;
});
	*list() {
		var dirs = yield fs.readdir(this.dir);
		return dirs.filter((wp) => wp[0] !== '.');
	}
Example #13
0
    co(function*(){
      try {
        port = String(port);
        var svrDir = path.resolve(config.dir, svrDirName(hostname, port));
        server.$socDirs.push([port, svrDir]);

        var svrDirWatchChan = chan();

        yield rmdirRecursive(svrDir);
        yield mkdirParents(svrDir);

        var svrDirWatch = fs.watch(svrDir, svrDirWatchChan);
        dirWatches[svrDir] = svrDirWatch; // ####
        console.log('creating... %s', getTermName(svrDir)); // ####

        server.emit('listening');
        for (;;) {
          yield svrDirWatchChan;

          if (server.$reading) continue; // 連続起動防止
          server.$reading = true;

          var names = yield cofs.readdir(svrDir);

          for (var i in names) {
            var name = names[i];

            if (!(name in server.$connections)) {
              var postfix = name.slice(-4);
              if (postfix === '.tmp') continue;

              var prefix = name.slice(0,4);

              // connect request 接続要求
              if (prefix === 'con_') {
                var contents = yield cofs.readFile(path.resolve(svrDir, name));
                contents = String(contents);
                yield cofs.unlink(path.resolve(svrDir, name));

                var cli = new FnetSocket();
                var socDir = cli.$socDir;
                yield mkdirParents(path.resolve(config.dir, socDir));
                cli.readStart();
                server.$connections[socDir] = cli;
                var file = path.resolve(config.dir, contents, 'ack_' + cli.$no);
                yield cofs.writeFile(file + '.tmp', socDir);
                yield cofs.rename(file + '.tmp', file + '.txt');
                cli.writeStart(contents);
                server.emit('connection', cli);
                continue;
              }

            }
          } // for i in names

          server.$reading = false;

        } // for (;;)

        this.emit('listening');
      } catch (err) {
        throw err;
      } finally {
        delete dirWatches[svrDir]; // ####
        console.log('deleting... %s', getTermName(svrDir)); // ####
        yield sleep(FINISH_TIMEOUT);
        if (svrDirWatch) svrDirWatch.close();
        yield sleep(FINISH_TIMEOUT);
        yield rmdirRecursive(svrDir);
      }

    })();
Example #14
0
    co(function*(){
      var cliDir = path.resolve(config.dir, soc.$socDir);

      try {
        yield mkdirParents(cliDir);

        var cliDirWatchChan = chan();
        var cliDirWatch = fs.watch(cliDir, cliDirWatchChan);
        dirWatches[cliDir] = cliDirWatch; // ####
        console.log('creating... %s', getTermName(cliDir)); // ####

        loop: for (;;) {
          yield cliDirWatchChan;
          if (soc.$reading) continue; // 連続起動防止
          soc.$reading = true;

          var names = yield cofs.readdir(cliDir);

          for (var i in names) {
            var name = names[i];

            var postfix = name.slice(-4);
            if (postfix === '.tmp') continue;

            var prefix = name.slice(0,4);
            var file = path.resolve(cliDir, name);

            // data received データ受信
            if (prefix === 'dat_') {
              var contents = yield cofs.readFile(file);
              yield cofs.unlink(file);
              soc.$readBuffs.push(contents);
              soc.emit('readable');
              continue;
            }

            // end/close received 終了受信
            if (prefix === 'end_') {
              yield cofs.unlink(file);
              if (soc.$readBuffs.length === 0) {
                soc.emit('end');
                break loop;
              }
              soc.$readBuffs.push('end');
              soc.emit('readable');
              break loop;
            }

            console.log('cli ? ' + name + ' / ' + cliDir);

          } // for i in names

          soc.$reading = false;

        } // for (;;)

      } catch (err) {
        soc.emit('error', err);
        throw new err;
      } finally {
        delete dirWatches[cliDir]; // ####
        console.log('deleting... %s', getTermName(cliDir)); // ####
        yield sleep(FINISH_TIMEOUT);
        if (cliDirWatch) cliDirWatch.close();
        yield sleep(FINISH_TIMEOUT);
        yield rmdirRecursive(cliDir);

        if (soc.$remotePath) {
          var remotePath = path.resolve(config.dir, soc.$remotePath);
          if (dirWatches[remotePath] !== null) console.log('eh? remotePath is not null?');
          yield sleep(LONG_TIMEOUT); // ####
          delete dirWatches[remotePath]; // ####
          console.log('deleting... %s (2)', getTermName(remotePath)); // ####
          yield rmdirRecursive(remotePath);
        }
      }

    })();