-
Notifications
You must be signed in to change notification settings - Fork 358
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extend OpamProcess to run scripts and Cygwin bins
Invoking processes on Windows is fundamentally different from Unix since Windows processes receive a single-string command line, rather than an argv array. Windows has a set of conventions for quoting these (totally independent of the Command Processor cmd.exe and unambiguously allowing any argv array to be encoded) which OCaml already follows in the Unix module. Cygwin, for various reasons, does not follow these conventions and various different shims are required, particularly to avoid Cygwin's globbing operations. Armed with the ability to call Cygwin executables, OpamProcess is also to locate a script processor, meaning it can handle #! scripts directly. This is less error prone than trying to run them using sh -c which on Cygwin has even more complex escaping rules which have to be navigated. Signed-off-by: David Allsopp <david.allsopp@metastack.com>
- Loading branch information
Showing
8 changed files
with
291 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters