Open aviladev opened 3 years ago
ping @manidlou
If you call ensureSymlink
on an existing symlink, with a different target, it fails with Error: EEXIST: file already exists
. It'd be weird for this to succeed if the symlink was broken. I'll admit, ENOENT
is an odd error to throw here. If possible, we should try to change this to throw EEXIST
even when the symlink is broken.
fs-extra
version: 10.0.0I'm not sure if this is the expected behavior.
Here's what I'm trying to do... basically I want to replicate what
ln -sfn
does. I would like to create a link to a file in my home bin folder. If I move the target file to another directory, then as expected, that link will now be broken. That's why I want to recreate that link, updating the target path. The problem is when I do this (callingcreateSymlink
) node throws an error (because the link is broken):The error is thrown by Node when calling
fs.stat
orfs.statSync
, here's what happens when I call it in Node REPL:The link exists, only it's broken. Looks like that is expected behavior for Node because it will call POSIX
stat
, and as the description:However for that purpose we can use
fs.lstat
orfs.lstatSync
which will call POSIXlstat
, which as described:Calling
fs.lstatSync
succeeds:Shouldn't
fs.ensureSymlink
check for broken symlink and update it (given the new target path exists)?