Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved interpretor path support #304

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Descolada
Copy link

Although I am aware of your policy of not accepting pull requests, I am leaving this here as a base for a potential fix for issue #303 whenever you get time to deal with this. Modify it as you wish.

This PR adds existsSyncEx and commandExistsSync functions to support accepting a command, file, or symlink as runtime paths. This fixes the issue where existsSync returns "false" in the case of a symlink pointing to the WindowsApps restricted folder.

  1. commandExistsSync requires the package command-exists, this has been added to package.json
  2. existsSyncEx uses lstatSync to check whether a file or symlink exists by checking for the ENOENT error. lstatSync is used instead of statSync because the latter fails with a "permission denied" error in cases of a symlink pointing to a restricted permission file.

For example, if AHK Microsoft Store edition is installed, commandExistsSync permits AutoHotkey command to be used instead of a full path, and existsSyncEx permits the symlink C:/Users/CURRENTUSER/AppData/Local/Microsoft/WindowsApps/AutoHotkey.exe which previously failed.

@zero-plusplus
Copy link
Owner

zero-plusplus commented Sep 23, 2023

Thanks so much for letting me know that there is a problem with the path validation.

I will have to think about reducing npm package dependencies in the future so I can come up with a better solution.


I will close this pull request in the future when this issue is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants