Skip to content

Program can not find file symlinks #20

@tgockel

Description

@tgockel

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 yamlinc@0.1.8
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions