Open tudatnms opened 6 months ago
Open to ideas but it is just a hack using bash aliases. Maybe your shell scripts are not using bash
? If they are using sh
that could be why. Adding the shebang for bash to your scripts would at least not be codespaces specific.
#!/usr/bin/env bash
Unfortunately using shebang (e.g. #!/usr/bin/env bash
) does not work. I don't think alias will work across either bash/shell scripts, but I'm not sure. Agree that using bash aliases is hacky. I don't have a better idea than calling run-yarn.sh directly in scripts. Will report back if I find a better way. Thanks.
https://github.com/microsoft/codespace-features/pull/65 might help here - in v2.0.2+ functions are used instead of aliases which should behave better.
Another trick that I found useful when running into a similar issue was to use BASH_ENV
to set up default shell imports even for non-interactive shells.
Hi, I am using the artifacts-helper to get auth token for .npmrc. It works fine if I run
yarn
directly from the terminal. However, I see an error when trying to callyarn
in a shell script.error An unexpected error occurred: "Failed to replace env in config: ${ARTIFACTS_ACCESSTOKEN}"
I believe this is because an alias for yarn set in bashrc:
alias yarn=/usr/local/bin/run-yarn.sh
does not work if I callyarn
from a shell script. Currently, as a workaround, I need to have a check if/usr/local/bin/run-yarn.sh
exists then run it instead ofyarn
, something like:But I wonder if there is any recommendation to get over this issue to not have this check in all scripts, and also not have codespace specific code in the source repo.
Thanks.