Skip to content

fs.lstatSync doesn't handle specific Windows REPARSE POINTS #239

Open
@paulbouwer

Description

@paulbouwer
  • OS version and name: Windows 10 (16179)
  • gaze version: 1.1.2

Referenced issues:

Issue

After experiencing the following issue in hyper which uses gaze, I noticed that all sub-folders in my HOME were being scanned instead of just the HOME/.hyper.js file that hyper had configured gaze to watch.

image

It also appears that in my case, the OneDrive folder has a specific type of reparse point that fs.lstatSync cannot handle. I ran a simple app against my home folder and fs.lstatSync will handle all other junctions in my HOME, just not the folders added by OneDrive.

Would it make sense to alter:

gaze.js - line 301-303

301      if (fs.lstatSync(dirfile).isDirectory()) {
302        helper.objectPush(this._watched, dirname, dirfile + path.sep);
303      }

to the following:

301      try {
302        if (fs.lstatSync(dirfile).isDirectory()) {
303          helper.objectPush(this._watched, dirname, dirfile + path.sep);
304        }
305      } catch (e) { }

or only catch the error if e.code === "EINVAL". At least until this can be resolved upstream in the node repo for fs.lstatSync.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions