shlint 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/shlint +43 -20
- metadata +2 -2
data/lib/shlint
CHANGED
@@ -12,22 +12,27 @@ set -o errexit
|
|
12
12
|
shlint_shells="zsh ksh bash dash sh"
|
13
13
|
|
14
14
|
shlint_debug=0
|
15
|
-
|
15
|
+
shlint_checkdir=0
|
16
|
+
shlint_filelist=""
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
shlint - shell linting utility.
|
18
|
+
usage() {
|
19
|
+
echo \
|
20
|
+
"shlint - shell linting utility.
|
20
21
|
|
21
22
|
Usage: shlint [OPTIONS] <FILE...>
|
22
23
|
|
23
|
-
|
24
|
+
if '.' (without quotes) is specified for FILE, directory is checked
|
25
|
+
recursively, ignoring hidden (dot prefixed) files and directories.
|
24
26
|
|
25
27
|
Default shells tested are:
|
26
28
|
$shlint_shells
|
27
29
|
|
28
30
|
Place a .shlintrc file in your homedir to override default shells.
|
29
31
|
This is expected to be shell syntax, specified as:
|
30
|
-
shlint_shells
|
32
|
+
shlint_shells=\"list installed shells here separated by spaces\"
|
33
|
+
|
34
|
+
You can also set debug mode on here permanently, with:
|
35
|
+
shlint_debug=1
|
31
36
|
|
32
37
|
OSX Users:
|
33
38
|
Use brew (http://mxcl.github.com/homebrew/) to install additional
|
@@ -35,23 +40,38 @@ Usage: shlint [OPTIONS] <FILE...>
|
|
35
40
|
|
36
41
|
Options:
|
37
42
|
--debug Prints additional output.
|
38
|
-
|
39
|
-
|
43
|
+
"
|
44
|
+
}
|
45
|
+
|
46
|
+
# Argument parsing
|
47
|
+
if [ $# -eq 0 ] ; then
|
48
|
+
usage ; exit 0
|
40
49
|
fi
|
41
50
|
|
42
|
-
for
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
fi
|
51
|
+
for cmd in $@ ; do
|
52
|
+
case "$cmd" in
|
53
|
+
"--debug"|"-d") shlint_debug=1 ; shift ;;
|
54
|
+
".") shlint_checkdir=1 ; shift ;;
|
55
|
+
"--help"|"-h") usage ; exit 0 ; shift ;;
|
56
|
+
esac
|
49
57
|
done
|
50
58
|
|
59
|
+
if [ $shlint_checkdir -eq 1 ] ; then
|
60
|
+
shlint_filelist="$(grep -lr '#!/bin/sh' . | grep -v '^\.\/\.')"
|
61
|
+
else
|
62
|
+
if [ $# -eq 0 ] ; then
|
63
|
+
echo "Nothing to check."
|
64
|
+
exit 0
|
65
|
+
fi
|
66
|
+
for param in $@ ; do
|
67
|
+
shlint_filelist="$shlint_filelist $param"
|
68
|
+
done
|
69
|
+
fi
|
70
|
+
|
51
71
|
# Override default shell tests
|
52
72
|
# Regular shell syntax here.
|
53
73
|
if [ -f ~/.shlintrc ]; then
|
54
|
-
. ~/.shlintrc
|
74
|
+
. ~/.shlintrc || exit 1
|
55
75
|
fi
|
56
76
|
|
57
77
|
for shlint_shell in $shlint_shells
|
@@ -59,14 +79,17 @@ do
|
|
59
79
|
if [ $shlint_debug = 1 ]; then
|
60
80
|
echo "Using $shlint_shell..."
|
61
81
|
fi
|
62
|
-
for
|
82
|
+
for shlint_file in $shlint_filelist
|
63
83
|
do
|
64
84
|
if [ $shlint_debug = 1 ]; then
|
65
|
-
echo "Testing $
|
66
|
-
$shlint_shell -n $
|
85
|
+
echo "Testing $shlint_file"
|
86
|
+
$shlint_shell -n $shlint_file
|
67
87
|
fi
|
68
88
|
done
|
69
89
|
done
|
70
90
|
|
91
|
+
if [ $shlint_debug = 1 ] ; then
|
92
|
+
echo "Checking for bashisms..."
|
93
|
+
fi
|
71
94
|
# Check for bashisms
|
72
|
-
checkbashisms $
|
95
|
+
checkbashisms $shlint_filelist
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shlint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Checks the syntax of your shellscript against known and available shells.
|
15
15
|
email:
|