[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] Debian package checker branch, master, updated. 2.1.3-60-gd6ac8bf



The following commit has been merged in the master branch:
commit d6ac8bf38340dae035d62880930a77fb1b6129bc
Author: Adam D. Barratt <adam@adam-barratt.org.uk>
Date:   Fri Jan 2 18:47:04 2009 +0000

    Flag the source bashism when its argument is quoted.

diff --git a/checks/scripts b/checks/scripts
index 146249c..aae51e8 100644
--- a/checks/scripts
+++ b/checks/scripts
@@ -615,6 +615,8 @@ while (<SCRIPTS>) {
 		my @bashism_single_quote_regexs = (
 		  $LEADIN . qr'echo\s+(?:-[^e\s]+\s+)?\'[^\']*(\\[\\abcEfnrtv0])+.*?[\']',
 			# unsafe echo with backslashes
+		  $LEADIN . qr'source\s+[\"\']?(?:\.\/|\/|\$)[^\s]+',
+			# should be '.', not 'source'
 		);
 		my @bashism_string_regexs = (
 		  qr'\$\[\w+\]',		 # arith not allowed
@@ -641,8 +643,6 @@ while (<SCRIPTS>) {
 		);
 		my @bashism_regexs = (
 		  qr'(?:^|\s+)function \w+(\s|\(|\Z)',  # function is useless
-					         # should be '.', not 'source'
-		  $LEADIN . qr'source\s+(?:\.\/|\/|\$)[^\s]+',
 		  qr'(test|-o|-a)\s*[^\s]+\s+==\s', # should be 'b = a'
 		  qr'\[\s+[^\]]+\s+==\s',        # should be 'b = a'
 		  qr'\s(\|\&)',		         # pipelining is not POSIX
diff --git a/debian/changelog b/debian/changelog
index 48f2e3a..ee585c7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -93,6 +93,7 @@ lintian (2.1.4) UNRELEASED; urgency=low
     + [ADB] More intelligently remove comments from shell scripts, to avoid
       removing some constructs that aren't comments, such as those in
       [ $# -gt 2 ] and "foo # bar".
+    + [ADB] Flag the source bashism when its argument is quoted.
   * checks/watch-file:
     + [RA] Recognize additional SourceForge URLs and recommend the
       redirector.  Thanks, Riccardo Stagni.  (Closes: #510398)
diff --git a/testset/maintainer-scripts/debian/prerm b/testset/maintainer-scripts/debian/prerm
index 512169c..88f2c7c 100644
--- a/testset/maintainer-scripts/debian/prerm
+++ b/testset/maintainer-scripts/debian/prerm
@@ -181,3 +181,6 @@ read -p "Would you like to restart the service?" foo bar
 read --fish
 
 set -e
+
+source "$BAR"
+source '$BAR'
diff --git a/testset/tags.maintainer-scripts b/testset/tags.maintainer-scripts
index 314a269..1debc3f 100644
--- a/testset/tags.maintainer-scripts
+++ b/testset/tags.maintainer-scripts
@@ -115,6 +115,8 @@ W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:171 'foobar@(
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:179 'read -r'
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:180 'read -p'
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:181 'read --fish'
+W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:185 'source "$BAR"'
+W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:186 'source '$BAR''
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:19 '[ "$2" == '
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:23 'function foo('
 W: maintainer-scripts: possible-bashism-in-maintainer-script prerm:26 '&>'

-- 
Debian package checker


Reply to: