New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make some shell scripts more robust #6219
Draft
sellout
wants to merge
5
commits into
zcash:master
Choose a base branch
from
sellout:improve-shell-scripts
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
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
sellout
force-pushed
the
improve-shell-scripts
branch
3 times, most recently
from
October 24, 2022 06:08
4dc2a30
to
7128503
Compare
sellout
commented
Oct 27, 2022
test/lint/lint-include-guards.sh
Outdated
HEADER_ID_PREFIX="ZCASH_" | ||
HEADER_ID_PREFIX_UPSTREAM="BITCOIN_" | ||
HEADER_ID_SUFFIX="_H" | ||
|
||
REGEXP_EXCLUDE_FILES_WITH_PREFIX="src/(crypto/ctaes/|leveldb/|crc32c/|secp256k1/|tinyformat.h|univalue/)" | ||
|
||
EXIT_CODE=0 | ||
for HEADER_FILE in $(git ls-files -- "*.h" | grep -vE "^${REGEXP_EXCLUDE_FILES_WITH_PREFIX}") | ||
HEADER_FILES=$(git ls-files -- "*.h" | grep -vE "^${REGEXP_EXCLUDE_FILES_WITH_PREFIX}") | ||
for HEADER_FILE in $HEADER_FILES |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just learned about shopt -s inherit_errexit
, which seems like it’ll let the original version of this code error properly. I think that’s a better change than to restructure the code to avoid the subshell error handling.
If command substitution is used inside another command, the exit status of the substituted command is lost. I ran into this in lint-shell-locale.sh, where it looked like it succeeded and exited with `0` even though there are currently known failures. The issue was that `git` wasn’t in the path, but the output was consumed by the substitution and the exit status was lost. Strict mode makes sure situations like this (and others) report a failure.
This also enables lint-shell-locale on CI.
sellout
force-pushed
the
improve-shell-scripts
branch
from
October 30, 2022 19:36
7128503
to
e9f7a15
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some linters were disappearing failure statuses. This fixes them and tries to reduce the chance of them reappearing via a stricter linter.
I didn’t rename the lint-shell-locale linter, because I figured this makes it easier to keep in sync with upstream changes.