Initial
This commit is contained in:
43
test/shellcheck.sh
Executable file
43
test/shellcheck.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Note use sh and not bash!
|
||||
|
||||
# To be used with in shellcheck and automated usage
|
||||
# Generate timestamp
|
||||
|
||||
# If logging specified, export shellcheck output to log
|
||||
# Excluded codes
|
||||
# SC2086 = SC2086: Double quote to prevent globbing and word splitting. - Keep it more readable please use them with v-xxx-commands when used user input might be not validated corrections and whitespaces might cause a risk
|
||||
# SC2002: Useless cat. Consider 'cmd < file | ..' or 'cmd file | ..' instead.
|
||||
# Check exit code directly with e.g. 'if mycmd;', not indirectly with $?. Might be worth disable in in the future
|
||||
# SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
|
||||
# SC2153: Possible misspelling: DOMAIN may not be assigned, but domain is. - Issues with SOURCE importing vars that are not defined in the script it self but config files
|
||||
# SC2016: Expressions don't expand in single quotes, use double quotes for that. - History reasons
|
||||
# SC2196: egrep is non-standard and deprecated. Use grep -E instead. Todo be removed in the future
|
||||
# SC1090; Can't follow non-constant source. Use a directive to specify location. - Hestia loves $HESTIA/data/ips/$ip
|
||||
# SC2031: var was modified in a subshell. That change might be lost.
|
||||
# SC2010
|
||||
# SC2143
|
||||
# SC2046
|
||||
|
||||
#set default value for error
|
||||
err=0
|
||||
shellcheck --version
|
||||
|
||||
i=0
|
||||
f=0
|
||||
files=$(grep -rlE '#!/bin/(bash|sh)' ./ | grep -vE '\.(git|j2$|md$)')
|
||||
for file in $files; do
|
||||
i=$(($i + 1))
|
||||
shellcheck -x "$file" --severity="error"
|
||||
# Only show failed checks
|
||||
if [ $? -gt 0 ]; then
|
||||
f=$(($f + 1))
|
||||
echo "Linting: $file"
|
||||
printf "%s: \033[0;31m Fail \033[0m\n" "$file"
|
||||
err=1
|
||||
fi
|
||||
done
|
||||
echo "$i files checked and $f errors"
|
||||
|
||||
exit $err
|
||||
Reference in New Issue
Block a user