#!/bin/bash set -EeufCo pipefail export SHELLOPTS # propagate set to children by default IFS=$'\t\n' # check required commands are in place command -v shellcheck >/dev/null 2>&1 || { echo 'please install shellcheck'; exit 1; } command -v hadolint >/dev/null 2>&1 || { echo 'please install hadolint'; exit 1; } command -v yamllint >/dev/null 2>&1 || { echo 'please install yamllint'; exit 1; } # check all the Dockerfiles with hadolint find . \ -type f \ -name 'Dockerfile' \ -print0 | xargs -0 -r hadolint # check all the yaml files with yamllint find . -type f \ -regex '.*\.ya?ml\(lint\)?' \ -print0 | xargs -0 -r yamllint -s # check all sh files with shellcheck find . \ -type f \ -name '*.sh' \ -print0 | xargs -0 -r shellcheck