From 2e0da76fef5f6659e0e98d7166e4497d23565831 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Mon, 16 May 2022 16:09:26 -0400 Subject: xlint: check if manually defined wrksrc is default also add a regex_escape filter to reduce false-positives in a couple places Closes: #242 [via git-merge-pr] --- xlint | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xlint b/xlint index df26d94..9839b97 100755 --- a/xlint +++ b/xlint @@ -15,6 +15,10 @@ scan() { done } +regex_escape() { + sed 's/\([.*+]\)/\\\1/g' +} + once() { head -n 1 } @@ -468,8 +472,11 @@ for argument; do scan '^\t*[^ ]*\(\)$' 'do not use a newline before function opening brace' scan 'python_version=.*#[[:space:]]*unverified' 'verify python_version and remove "#unverified"' pkgname=$(grep -Po "^pkgname=\K.*" "$template" | once) + pkgname_re=$(echo "$pkgname" | regex_escape) version=$(grep -Po "^version=\K.*" "$template" | once) - scan "distfiles=.*\Q$version\E" 'use ${version} in distfiles instead' + version_re=$(echo "$version" | regex_escape) + scan '^wrksrc="?(\$\{?pkgname\}?|'$pkgname_re')-(\$\{?version\}?|'$version_re')"?$' 'unnecessary wrksrc definition' + scan "distfiles=.*\Q$version_re\E" 'use ${version} in distfiles instead' scan "system_accounts=.*\b(?!($old_accounts))[a-zA-Z]" 'new accounts should be prefixed with underscore' variables_order header -- cgit 1.4.1