yamlinc icon indicating copy to clipboard operation
yamlinc copied to clipboard

Program can not find file symlinks

Open tgockel opened this issue 5 years ago • 1 comments

If the target file of an $include is a symbolic link, the program fails to find the file.

Steps

Environment

I made a clean environment of Ubuntu 18.04 with Docker for minimal testing (feel free to jump to "Recreation" if this isn't applicable).

docker --rm -it ubuntu:18.04
apt-get update && apt-get install npm
npm install -g [email protected]
mkdir testbed && cd testbed

Recreation

echo '$include: "./link.yaml"' > root.yaml
echo 'tacos: {}' > target.yaml
ln -s target.yaml link.yaml
yamlinc --strict root.yaml

Expected Behavior

I would expect the output to look something like this:

## --------------------
## warning stuff here...
tacos: {}

Actual Behavior

The program exits with code 1 and gives the following message:

   Analize : root.yaml
 > Problem : file not found './link.yaml' on 'root.yaml' at line 1.

Problem

The issue appears to be in helpers.js:91 with the usage of fs.lstatSync(file).isFile(), specifically, I do not think that lstat should be used. I do not think that a tool like yamlinc means to look at the link stats, but cares about the target file. I believe fs.statSync(file).isFile() is correct here.

tgockel avatar Apr 18 '19 23:04 tgockel

Hi @tgockel your patch is online on the new version https://www.npmjs.com/package/yamlinc/v/0.1.9 Thanks

francescobianco avatar Apr 20 '19 17:04 francescobianco