1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00

Add Run A Bash Script From A Node Script as a JavaScript TIL

This commit is contained in:
jbranchaud
2024-03-08 18:17:43 -06:00
parent a05840633f
commit d1f83edea7
2 changed files with 45 additions and 1 deletions

View File

@@ -0,0 +1,43 @@
# Run A Bash Script From A Node Script
A node script in `package.json` can reference and run any command or executable
script available on our system. This is why we're able to have node scripts
that do things like run a linter or start a web server.
We can take this a step further by defining our own scripts to enhance our
development and CI environments.
For instance, let's say we have the following bash script (`check-stripe`) in
our project's `scripts` directory for checking that we are connected to the
right Stripe account.
```bash
#!/bin/bash
# Expected stripe display name
EXPECTED_STRING="My Online Product"
# Currently connected stripe display name
COMMAND_OUTPUT=$(
stripe config --list | grep '^display_name' | awk -F'=' '{print $2}' | xargs
)
# Compare the expected string with the command output
if [ "$EXPECTED_STRING" = "$COMMAND_OUTPUT" ]; then
exit 0
else
echo "Mismatched Stripe accounts, expected $EXPECTED_STRING, got $COMMAND_OUTPUT."
exit 1
fi
```
This script exits with either a successful (`0`) or failed (`1`) status. We can
use this in our node script to guard another command from getting run.
```json
{
"scripts": {
"dev:stripe": "./scripts/check-stripe && stripe listen ..."
}
}
```