mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00

Rename `CI_HOST_ARCH` and `CI_HOST_SYSTEM`, to `CI_BUILD_ARCH` and `CI_BUILD_SYSTEM`, following the nomenclature used by GNU Autotools. Unfortunately, the word "host" has confusingly opposite meanings in CMake (and Bazel, etc.) vs. Autotools (and Meson, etc.) Remove `CI_TARGET_TRIPLET` and `CI_TARGET_ABI` (for now). Introduce the function `ci_expr` as a fast and easy equivalent of `expr >/dev/null`. Rephrase the assertions using an implementation pattern that is more expressive, yet (arguably) just as readable. Remove `ci_assert`. Modify the main functions to display more useful information in case of usage error.
80 lines
2.0 KiB
Bash
Executable File
80 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Copyright (c) 2019-2023 Cosmin Truta.
|
|
#
|
|
# Use, modification and distribution are subject
|
|
# to the Boost Software License, Version 1.0.
|
|
# See the accompanying file LICENSE_BSL_1_0.txt
|
|
# or visit http://www.boost.org/LICENSE_1_0.txt
|
|
#
|
|
# SPDX-License-Identifier: BSL-1.0
|
|
|
|
# shellcheck source="ci/lib/ci.lib.sh"
|
|
source "$(dirname "$0")/lib/ci.lib.sh"
|
|
cd "$CI_TOPLEVEL_DIR"
|
|
|
|
CI_SHELLCHECK="$(command -v shellcheck || true)"
|
|
CI_YAMLLINT="$(command -v yamllint || true)"
|
|
CI_LINT_COUNTER=0
|
|
|
|
function ci_lint_ci_config_files {
|
|
ci_info "linting: CI config files"
|
|
local MY_FILE
|
|
if [[ -x $CI_YAMLLINT ]]
|
|
then
|
|
ci_spawn "$CI_YAMLLINT" --version
|
|
for MY_FILE in "$CI_TOPLEVEL_DIR"/.*.yml
|
|
do
|
|
ci_spawn "$CI_YAMLLINT" --strict "$MY_FILE" ||
|
|
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
|
|
done
|
|
else
|
|
ci_warn "program not found: 'yamllint'; skipping checks"
|
|
fi
|
|
}
|
|
|
|
function ci_lint_ci_scripts {
|
|
ci_info "linting: CI scripts"
|
|
local MY_FILE
|
|
if [[ -x $CI_SHELLCHECK ]]
|
|
then
|
|
ci_spawn "$CI_SHELLCHECK" --version
|
|
for MY_FILE in "$CI_SCRIPT_DIR"/*.sh
|
|
do
|
|
ci_spawn "$CI_SHELLCHECK" -x "$MY_FILE" ||
|
|
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
|
|
done
|
|
else
|
|
ci_warn "program not found: 'shellcheck'; skipping checks"
|
|
fi
|
|
}
|
|
|
|
function ci_lint_ci_scripts_license {
|
|
ci_info "linting: CI scripts license"
|
|
ci_spawn grep -F "Boost Software License" ci/LICENSE_BSL_1_0.txt || {
|
|
ci_warn "bad or missing CI license file: '$CI_SCRIPT_DIR/LICENSE_BSL_1_0.txt'"
|
|
CI_LINT_COUNTER=$((CI_LINT_COUNTER + 1))
|
|
}
|
|
}
|
|
|
|
function main {
|
|
[[ $# -eq 0 ]] || {
|
|
ci_info "usage: $CI_SCRIPT_NAME"
|
|
ci_err "unexpected command argument: '$1'"
|
|
}
|
|
ci_lint_ci_config_files
|
|
ci_lint_ci_scripts
|
|
ci_lint_ci_scripts_license
|
|
if [[ $CI_LINT_COUNTER -eq 0 ]]
|
|
then
|
|
ci_info "success!"
|
|
exit 0
|
|
else
|
|
ci_info "failed on $CI_LINT_COUNTER file(s)"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
main "$@"
|