I've been doing a lot of work on the shell scripts, and there's been some headache around platform-specific syntax. I saw some of that in my conda days. The only real way to avoid the headache is to strive for POSIX compliance, which can be something of a headache unto itself.

The first part of this proposal is to:
* Add a shellcheck step to our CI to show our status
* Make an effort to get our scripts into POSIX compliance

The second part of this proposal is to create native, standalone executables to replace our shell scripts. This is really only relevant to the `quarto` and `quarto.cmd` scripts. Native executables are not mutually exclusive with POSIX compatibility. Each part should be considered in terms of what goes into installers/packages and what only developers use. 

The argument for POSIX compliance in our dev scripts is much weaker than the argument for it in the end-user scripts. It's reasonable to establish some BASH requirement for our dev scripts.

What this really boils down to is that it would be good to have the end-user scripts be POSIX compliant or be replaced by a standalone compiled executable (go, rust, whatever is easiest and most completely standalone).
2022-08-25T17:19:01Z
msarahan
closed
Proposal: posix compliance in shell scripts; native compiled launcher
https://github.com/quarto-dev/quarto-cli/issues/2128