yamlinc
yamlinc copied to clipboard
Program can not find file symlinks
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.
Hi @tgockel your patch is online on the new version https://www.npmjs.com/package/yamlinc/v/0.1.9 Thanks