summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux')
-rwxr-xr-xbuild-aux/lint-generic15
-rwxr-xr-xbuild-aux/valgrind2
2 files changed, 12 insertions, 5 deletions
diff --git a/build-aux/lint-generic b/build-aux/lint-generic
index d982527..9bf88dd 100755
--- a/build-aux/lint-generic
+++ b/build-aux/lint-generic
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
# build-aux/lint-generic - Non-language-specific lint checks
#
# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
@@ -16,12 +16,19 @@ r=0
for filename in "$@"; do
# File header ##########################################################
- shebang="$(sed -n '1{/^#!/{/^#!\/hint\//q; p;};}' "$filename")"
- if [ -x "$filename" ] && [ -z "$shebang" ]; then
+ 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" ] && ! [ -x "$filename" ]; then
+ 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'
diff --git a/build-aux/valgrind b/build-aux/valgrind
index 7ad2712..8fe7c6e 100755
--- a/build-aux/valgrind
+++ b/build-aux/valgrind
@@ -1,4 +1,4 @@
-#!/bin/env bash
+#!/usr/bin/env bash
# build-aux/valgrind - Wrapper around valgrind to keep flags consistent
#
# Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>