This commit is contained in:
Leo Gutiérrez Ramírez 2018-09-07 16:24:23 +00:00 committed by GitHub
commit 3d14d01dad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 25 deletions

View file

@ -1,13 +1,18 @@
#!/usr/bin/env bash
# TODO: Find a less trashy way to get the next available error code
if ! shopt -s globstar
then
if ! shopt -s globstar; then
echo "Error: This script depends on Bash 4." >&2
exit 1
fi
for i in 1 2
do
last=$(grep -hv "^prop" ./**/*.hs | grep -Ewo "$i[0-9]{3}" | sort -n | tail -n 1)
for i in 1 2; do
last=$(grep --no-filename --invert-match "^prop" ./**/*.hs \
| grep --extended-regexp --word-regexp --only-matching "$i[0-9]{3}" \
| sort --numeric-sort \
| tail --lines 1
)
echo "Next ${i}xxx: $((last+1))"
done
exit 0

View file

@ -1,5 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
# quickrun runs ShellCheck in an interpreted mode.
# This allows testing changes without recompiling.
runghc -isrc -idist/build/autogen shellcheck.hs "$@"
exit

View file

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# quicktest runs the ShellCheck unit tests in an interpreted mode.
# This allows running tests without compiling, which can be faster.
# 'cabal test' remains the source of truth.
@ -16,7 +16,7 @@ if [[ $var == *$'\nTrue'* ]]
then
exit 0
else
grep -C 3 -e "Fail" -e "Tracing" <<< "$var"
grep --context 3 --regexp "Fail" --regexp "Tracing" <<< "${var}"
exit 1
fi
) 2>&1

View file

@ -5,15 +5,14 @@
set -o pipefail
sponge() {
data="$(cat)"
printf '%s\n' "$data" > "$1"
local -r DATA="$(cat)"
printf '%s\n' "${DATA}" > "${1}"
}
modify() {
if ! "${@:2}" < "$1" | sponge "$1"
then
if ! "${@:2}" < "${1}" | sponge "${1}"
{
printf 'Failed to modify %s: ' "$1"
printf 'Failed to modify %s: ' "${1}"
printf '%q ' "${@:2}"
printf '\n'
} >&2
@ -50,28 +49,23 @@ detestify() {
'
}
if [[ ! -e ShellCheck.cabal ]]
then
if [[ ! -e 'ShellCheck.cabal' ]]; then
echo "Run me from the ShellCheck directory." >&2
exit 1
fi
if [[ -d '.git' ]] && ! git diff --exit-code > /dev/null 2>&1
then
if [[ -d '.git' ]] && ! git diff --exit-code > /dev/null 2>&1; then
echo "You have local changes! These may be overwritten." >&2
exit 2
fi
modify ShellCheck.cabal sed -e '
modify 'ShellCheck.cabal' sed -e '
/QuickCheck/d
/^test-suite/{ s/.*//; q; }
'
find . -name '.git' -prune -o -type f -name '*.hs' -print |
while IFS= read -r file
do
modify "$file" detestify
done
while IFS= read -r file; do
modify "${file}" detestify
done < <(find . -name '.git' -prune -o -type f -name '*.hs' -print)
exit 0