Example #1
0
Listener.prototype.node_watch_path = function (_path) {
  const self = this;

  /*eslint-disable no-sync */
  const stats = fs.lstatSync(_path);
  /*eslint-enable no-sync */
  if (stats.isSymbolicLink()) {
    return log.error("Skipping adding %s because it is a symlink.", _path);
  }

  self.watchers[_path] = fs.watch(_path, self.listener.bind(self, _path));

  /*eslint-disable no-sync */
  const paths = fs.readdirSync(_path);
  /*eslint-enable no-sync */

  _.each(paths, function (p) {
    const p_path = path.join(_path, p);
    /*eslint-disable no-sync */
    const p_stats = fs.lstatSync(p_path);
    /*eslint-enable no-sync */
    if (p_stats.isDirectory()) {
      self.watch_path(p_path);
    }
    // TODO: if file, run all the hooks
  });
};
Example #2
0
File: io.js Project: cygx/nqp
op.stat = function(file, code) {
  var EXISTS = 0;
  var FILESIZE = 1;
  var ISDIR = 2;
  var ISREG = 3;
  var ISDEV = 4;
  var CREATETIME = 5;
  var ACCESSTIME = 6;
  var MODIFYTIME = 7;
  var CHANGETIME = 8;
  var BACKUPTIME = 9;
  var UID = 10;
  var GID = 11;
  var ISLNK = 12;
  var PLATFORM_DEV = -1;
  var PLATFORM_INODE = -2;
  var PLATFORM_MODE = -3;
  var PLATFORM_NLINKS = -4;
  var PLATFORM_DEVTYPE = -5;
  var PLATFORM_BLOCKSIZE = -6;
  var PLATFORM_BLOCKS = -7;

  // we can't use fs.existsSync(file) as it follows symlinks
  try {
    var stats = fs.lstatSync(file);
  } catch (err) {
    if (code == EXISTS && err.code === 'ENOENT') {
      return 0;
    } else {
      throw err;
    }
  }

  switch (code) {
    case EXISTS: return 1;
    case FILESIZE: return stats.size;
    case ISDIR: return boolish(stats.isDirectory());
    case ISREG: return boolish(stats.isFile());
    case ISDEV:
      return boolish(stats.isCharacterDevice() || stats.isBlockDevice());
    case CREATETIME: return -1;
    case ACCESSTIME: return stats.atime.getTime() / 1000;
    case MODIFYTIME: return stats.mtime.getTime() / 1000;
    case CHANGETIME: return stats.ctime.getTime() / 1000;
    case BACKUPTIME: return -1;
    case UID: return stats.uid;
    case GID: return stats.gid;
    case ISLNK: return boolish(stats.isSymbolicLink());
    case PLATFORM_DEV: return stats.dev;
    case PLATFORM_INODE: return stats.ino;
    case PLATFORM_MODE: return stats.mode;
    case PLATFORM_NLINKS: return stats.nlink;
    case PLATFORM_DEVTYPE: return stats.rdev;
    case PLATFORM_BLOCKSIZE: return stats.blksize;
    case PLATFORM_BLOCKS: return stats.blocks;
  }
};
Example #3
0
 _.each(paths, function (p) {
   var stats,
     p_path = path.join(self.path, p);
   /*eslint-disable no-sync */
   stats = fs.lstatSync(p_path);
   /*eslint-enable no-sync */
   if (stats.isDirectory()) {
     self.children[p_path] = new Hook(p_path, self);
   }
 });
Example #4
0
 _.each(paths, function (p) {
   const p_path = path.join(_path, p);
   /*eslint-disable no-sync */
   const p_stats = fs.lstatSync(p_path);
   /*eslint-enable no-sync */
   if (p_stats.isDirectory()) {
     self.watch_path(p_path);
   }
   // TODO: if file, run all the hooks
 });
Example #5
0
 _.each(paths, function (p) {
   var stats,
     p_path = path.join(_path, p);
   /*eslint-disable no-sync */
   stats = fs.lstatSync(p_path);
   /*eslint-enable no-sync */
   if (stats.isDirectory()) {
     return self.run_hooks(p_path);
   }
   if (stats.isFile()) {
     return self.handle_hook(p_path);
   }
 });
Example #6
0
File: io.js Project: usev6/nqp
op.fileislink = function(file) {
  return boolish(fs.lstatSync(file).isSymbolicLink());
};