forked from Homebrew/homebrew-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheckbashisms.rb
32 lines (27 loc) · 930 Bytes
/
checkbashisms.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Checkbashisms < Formula
desc "Checks for bashisms in shell scripts"
homepage "https://launchpad.net/ubuntu/+source/devscripts/"
url "https://deb.debian.org/debian/pool/main/d/devscripts/devscripts_2.19.6.tar.xz"
sha256 "3196092bd274db9aa1e34e68a0c94c6edb49a481dded1656fd9785831bfdcec4"
bottle :unneeded
def install
inreplace "scripts/checkbashisms.pl" do |s|
s.gsub! "###VERSION###", version
s.gsub! "#!/usr/bin/perl", "#!/usr/bin/perl -T"
end
bin.install "scripts/checkbashisms.pl" => "checkbashisms"
man1.install "scripts/checkbashisms.1"
end
test do
(testpath/"test.sh").write <<~EOS
#!/bin/sh
if [[ "home == brew" ]]; then
echo "dog"
fi
EOS
expected = <<~EOS
(alternative test command ([[ foo ]] should be [ foo ])):
EOS
assert_match expected, shell_output("#{bin}/checkbashisms #{testpath}/test.sh 2>&1", 1)
end
end