/
githubmirror
/
hugo
Обзор
Документация
Войти
/
githubmirror
/
hugo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
check.sh
89 строк
2 KB
Shantanav Mukherjee
check.sh: Handle staticcheck not installed/in PATH
28 июл 2026, 13:31
Не верифицирован
28 июл 2026, 13:31
a243a61
Код
Авторство
О чём код?
#!/bin/bash set -e # Default to all packages if none specified PACKAGES="${1:-./...}" echo "==> Checking packages: $PACKAGES" # Timing arrays declare -a STEP_NAMES declare -a STEP_TIMES time_step() { local name="$1" shift local start=$(date +%s.%N) "$@" local end=$(date +%s.%N) local elapsed=$(echo "$end - $start" | bc) STEP_NAMES+=("$name") STEP_TIMES+=("$elapsed") } # Check gofmt run_gofmt() { echo "==> Running gofmt..." # Convert package pattern to path (e.g., ./hugolib/... -> ./hugolib) local path="${PACKAGES%/...}" GOFMT_OUTPUT=$(gofmt -l "$path" 2>&1) || true if [ -n "$GOFMT_OUTPUT" ]; then echo "gofmt found issues in:" echo "$GOFMT_OUTPUT" exit 1 fi echo " OK" } # Run staticcheck run_staticcheck() { local staticcheck_bin if command -v staticcheck &> /dev/null; then staticcheck_bin=$(command -v staticcheck) else echo "==> Installing staticcheck..." go install honnef.co/go/tools/cmd/staticcheck@latest staticcheck_bin="$(go env GOBIN)" if [ -z "$staticcheck_bin" ]; then staticcheck_bin="$(go env GOPATH)/bin" fi staticcheck_bin="$staticcheck_bin/staticcheck" fi echo "==> Running staticcheck..." "$staticcheck_bin" $PACKAGES echo " OK" } # Run tests run_tests() { echo "==> Running tests..." local output if ! output=$(go test -failfast $PACKAGES 2>&1); then echo "$output" exit 1 fi echo " OK" } # Run all steps with timing TOTAL_START=$(date +%s.%N) time_step "gofmt" run_gofmt time_step "staticcheck" run_staticcheck time_step "tests" run_tests TOTAL_END=$(date +%s.%N) TOTAL_ELAPSED=$(echo "$TOTAL_END - $TOTAL_START" | bc) # Print timing summary echo "" echo "==> All checks passed!" echo "" echo "Timing summary:" echo "---------------" for i in "${!STEP_NAMES[@]}"; do printf " %-15s %6.2fs\n" "${STEP_NAMES[$i]}" "${STEP_TIMES[$i]}" done echo "---------------" printf " %-15s %6.2fs\n" "Total" "$TOTAL_ELAPSED"