mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-12-20 14:01:50 +03:00
ac5a96fada
Squashed commit of the following: commit f920006277f39b74c803139af2a9039aa45effae Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Fri Nov 8 16:14:41 2024 +0300 all: fix pre-commit; upd dnsproxy commit391f79b244
Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Nov 7 18:53:28 2024 +0300 scripts: imp install commit35324db80b
Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Nov 7 18:20:23 2024 +0300 all: imp docs, scripts commitd2724cfaef
Author: Ainar Garipov <A.Garipov@AdGuard.COM> Date: Thu Nov 7 17:26:23 2024 +0300 all: upd go, deps, tools, scripts
75 lines
1.6 KiB
Bash
75 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
# Common script helpers
|
|
#
|
|
# This file contains common script helpers. It should be sourced in scripts
|
|
# right after the initial environment processing.
|
|
|
|
# This comment is used to simplify checking local copies of the script. Bump
|
|
# this number every time a remarkable change is made to this script.
|
|
#
|
|
# AdGuard-Project-Version: 4
|
|
|
|
# Deferred helpers
|
|
|
|
not_found_msg='
|
|
looks like a binary not found error.
|
|
make sure you have installed the linter binaries using:
|
|
|
|
$ make go-tools
|
|
'
|
|
readonly not_found_msg
|
|
|
|
not_found() {
|
|
if [ "$?" -eq '127' ]; then
|
|
# Code 127 is the exit status a shell uses when a command or a file is
|
|
# not found, according to the Bash Hackers wiki.
|
|
#
|
|
# See https://wiki.bash-hackers.org/dict/terms/exit_status.
|
|
echo "$not_found_msg" 1>&2
|
|
fi
|
|
}
|
|
trap not_found EXIT
|
|
|
|
# Helpers
|
|
|
|
# run_linter runs the given linter with two additions:
|
|
#
|
|
# 1. If the first argument is "-e", run_linter exits with a nonzero exit code
|
|
# if there is anything in the command's combined output.
|
|
#
|
|
# 2. In any case, run_linter adds the program's name to its combined output.
|
|
run_linter() (
|
|
set +e
|
|
|
|
if [ "${VERBOSE:-0}" -lt '2' ]; then
|
|
set +x
|
|
fi
|
|
|
|
cmd="${1:?run_linter: provide a command}"
|
|
shift
|
|
|
|
exit_on_output='0'
|
|
if [ "$cmd" = '-e' ]; then
|
|
exit_on_output='1'
|
|
cmd="${1:?run_linter: provide a command}"
|
|
shift
|
|
fi
|
|
|
|
readonly cmd
|
|
|
|
output="$("$cmd" "$@")"
|
|
exitcode="$?"
|
|
|
|
readonly output
|
|
|
|
if [ "$output" != '' ]; then
|
|
echo "$output" | sed -e "s/^/${cmd}: /"
|
|
|
|
if [ "$exitcode" -eq '0' ] && [ "$exit_on_output" -eq '1' ]; then
|
|
exitcode='1'
|
|
fi
|
|
fi
|
|
|
|
return "$exitcode"
|
|
)
|