Ambiguity between a stack command and a filename to execute #1471
Separating this from issue #1394
If we have a file in the current directory whose name matches any of the stack commands then instead of running the command stack will execute the file as an interpreter. Here is an example:
Currently we look at the argument and if it is a file and contains a valid stack comment we execute it. There is an ambiguity here about whether build should be treated as a command or a file.
A couple of ways to handle this:
An easy fix is to give preference to commands i.e. reserve the syntax
shebang case works fine with this solution. Consider executing a file named
We can distinguish the case by using a subcommand e.g. use
So the alternative is to use a distinct stack binary name let's say
Any other ideas?
The text was updated successfully, but these errors were encountered:
We were prioritising execution of a file over stack commands if a filename in the current directory was the same as a stack command. With this fix we first try a stack command, then an external command stack-<command> and if those fail we look for a file in the current directory to execute in interpreter mode. If we intend to execute the file we can specify the path like ./filename. I had to refactor `main` to make this work. I tried to minimise the refactoring and limit the scope to only this fix. Main looks better and modular now. closes commercialhaskell#1471