mirror of
https://github.com/koalaman/shellcheck
synced 2025-08-22 06:13:54 -07:00
Merge 597f8c96cc
into f0a2e688c4
This commit is contained in:
commit
3d14d01dad
4 changed files with 26 additions and 25 deletions
15
nextnumber
15
nextnumber
|
@ -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
|
||||
|
||||
|
|
4
quickrun
4
quickrun
|
@ -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
|
|
@ -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
|
||||
|
|
28
striptests
28
striptests
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue