#!/usr/bin/env bash set -euo pipefail VERSION="1.0.0" SCRIPT_NAME="$(basename "$0")" usage() { cat <&2; usage >&2; exit 2 ;; *) LOCAL_PREFIX="$1"; shift ;; esac done generate_config() { cat <<'YAML' linters: enable: - errcheck - goimports - revive - govet - staticcheck linters-settings: YAML if [[ -n "$LOCAL_PREFIX" ]]; then cat <&2 exit 2 fi generate_config > "$CONFIG_PATH" LINT_OUTPUT="" LINT_EXIT=0 if ! command -v golangci-lint &>/dev/null; then echo "error: golangci-lint is not installed" >&2 exit 2 fi LINT_OUTPUT=$(golangci-lint run ./... 2>&1) || LINT_EXIT=$? if $JSON_OUTPUT; then LINT_TRUNCATED=false LINT_DISPLAY="$LINT_OUTPUT" if [[ $LIMIT -gt 0 && -n "$LINT_OUTPUT" ]]; then LINT_ARR=() while IFS= read -r line; do LINT_ARR+=("$line") done <<< "$LINT_OUTPUT" if [[ ${#LINT_ARR[@]} -gt $LIMIT ]]; then LINT_DISPLAY="" for (( i=0; i