The make test-lint could check for lines like
export X=Y
This is bash syntax and should be written in 2 lines:
X=Y
export X
Signed-off-by: Torsten Bögershausen <redacted>
---
t/check-non-portable-shell.pl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
index 1ca8c8b..6a11b02 100755
--- a/t/check-non-portable-shell.pl
+++ b/t/check-non-portable-shell.pl
@@ -11,7 +11,7 @@ my $bashmode=0;
sub err {
my $msg = shift;
- print "$ARGV:$.: error: (bashmode=$bashmode) $msg: $_\n";
+ print "$ARGV:$.: error: $msg: $_\n";
$exit_code = 1;
}
@@ -25,6 +25,7 @@ while (<>) {
/^\s*declare\s+/ and err 'arrays/declare not portable';
/^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
$bashmode==0 and /test\s+[^=]*==/ and err '"test a == b" is not portable (please use =)';
+ $bashmode==0 and /^\s*export\s+\S+=\S+/ and err '"export X=Y" is not portable (please split into 2 lines)';
# this resets our $. for each file
close ARGV if eof;
$bashmode=0 if eof;--
1.8.2.1.614.g66d7af5