Skip to content

Conversation

@ianhinder
Copy link
Contributor

store-ref-data.sh: Ensure run from testing directory and make more robust

  • Add shopt -s nullglob to make sure that ../examples/*
    expands to nothing rather than to itself when there are no matches.
    Otherwise, running in the LIFE directory leads to rm -rf *!
  • Add an explicit check that the script is run in the right directory, and
    give a helpful error message if it isn't.
  • Quote variable expansions. This ensures that the script works if there
    are spaces or shell metacharacters in variables. It would also have
    stopped the "*" being interpreted as a wildcard.
  • Remove variable expansions from printf format string. If the variables
    have printf format characters (e.g. %) in them, it would lead to unintended
    results.

Mostly, this is just defensive bash programming. Issues like these can
be found easily using shellcheck, either on the command line, or at
https://www.shellcheck.net. Integrating a shell checker in your editor
is also helpful (I use flycheck for emacs).

Or just use python :)

run-tests.sh: Add check for correct directory and make more robust

Now passes shellcheck.

--

I have tested that storing the reference data and running the tests works after this change.

ianhinder added 2 commits May 6, 2022 15:04
…bust

- Add `shopt -s nullglob` to make sure that `../examples/*`
  expands to nothing rather than to itself when there are no matches.
  Otherwise, running in the LIFE directory leads to `rm -rf *`!
- Add an explicit check that the script is run in the right directory, and
  give a helpful error message if it isn't.
- Quote variable expansions.  This ensures that the script works if there
  are spaces or shell metacharacters in variables. It would also have
  stopped the "*" being interpreted as a wildcard.
- Remove variable expansions from printf format string.  If the variables
  have printf format characters (e.g. %) in them, it would lead to unintended
  results.

Mostly, this is just defensive bash programming.  Issues like these can
be found easily using `shellcheck`, either on the command line, or at
https://www.shellcheck.net.  Integrating a shell checker in your editor
is also helpful (I use flycheck for emacs).

Or just use python :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant