summaryrefslogtreecommitdiff
path: root/build-aux/lint-generic
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/lint-generic')
-rwxr-xr-xbuild-aux/lint-generic62
1 files changed, 0 insertions, 62 deletions
diff --git a/build-aux/lint-generic b/build-aux/lint-generic
deleted file mode 100755
index 9bf88dd..0000000
--- a/build-aux/lint-generic
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env bash
-# build-aux/lint-generic - Non-language-specific lint checks
-#
-# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
-# SPDX-License-Identifier: AGPL-3.0-or-later
-
-RED=$(tput setaf 1)
-RESET=$(tput sgr0)
-
-err() {
- printf "${RED}%s${RESET}: %s\n" "$1" "$2" >&2
- r=1
-}
-
-r=0
-for filename in "$@"; do
- # File header ##########################################################
-
- shebang="$(sed -n '1{/^#!/p;}' "$filename")"
- if [[ -x $filename && (-z $shebang || $shebang == '#!/hint/'*) ]]; then
- err "$filename" 'is executable but does not have a shebang'
- elif [[ (-n $shebang && $shebang != '#!/hint/'*) && ! -x $filename ]]; then
- err "$filename" 'has a shebang but is not executable'
- fi
- case "$shebang" in
- '') : ;;
- '#!/bin/sh') : ;;
- '#!/usr/bin/env bash') : ;;
- '#!/usr/bin/env python3') : ;;
- *) err "$filename" 'has an unrecognized shebang' ;;
- esac
-
- if ! grep -E -q 'Copyright \(C\) 202[4-9]((-|, )202[5-9])* Luke T. Shumaker' "$filename"; then
- err "$filename" 'is missing a copyright statement'
- fi
- if test -e .git && ! git diff --quiet milestone/2025-01-01 HEAD -- "$filename"; then
- if ! grep -E -q 'Copyright \(C\) .*2025 Luke T. Shumaker' "$filename"; then
- err "$filename" 'has an outdated copyright statement'
- fi
- fi
- if ! grep -q '\sSPDX-License-Identifier[:] ' "$filename"; then
- err "$filename" 'is missing an SPDX-License-Identifier'
- fi
-
- dscname_act=$(./build-aux/get-dscname "$filename")
- dscname_exp=$(echo "$filename" | sed \
- -e 's,.*/config/,,' \
- -e 's,.*/config\.h$,config.h,' \
- -e 's,.*include/,,' \
- -e 's,.*static/,,' \
- -e 's/\.wip$//')
- if [ "$dscname_act" != "$dscname_exp" ] && [ "cmd/$dscname_act" != "$dscname_exp" ]; then
- err "$filename" "self-identifies as $dscname_act (expected $dscname_exp)"
- fi
-
- # File body ############################################################
-
- if grep -n --color=auto "$(printf '\\S\t')" "$filename"; then
- err "$filename" 'uses tabs for alignment'
- fi
-done
-exit $r