gergich 0.1.17 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/lib/gergich/capture/shellcheck_capture.rb +27 -0
- data/spec/gergich/capture/shellcheck_capture_spec.rb +81 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da4c870097f2129eaa052c2b41b840da0cc096f
|
4
|
+
data.tar.gz: 4d3102825f2858c5e63cade4fb751d29f9c2a73b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 011eb695e557e2c00074731bd9521d606ba13f0fa18d0fccd71095b7db8c1cc58e215eeeabee1fd80ac34075111621d3ece3fc85ccf0d2ccb5620686400ea1c3
|
7
|
+
data.tar.gz: b616b994af49ce7c2c714d3d40a7e8eee6cb613aede43e31d7e4cb106844d1acd538d02f71dfedab83aa0c0a5843ea02427603f9adff3552bdfc850c96821015
|
data/README.md
CHANGED
@@ -107,6 +107,7 @@ do `gergich comment` calls so you don't have to wire it up yourself.
|
|
107
107
|
* `i18nliner`
|
108
108
|
* `flake8`
|
109
109
|
* `stylelint`
|
110
|
+
* `shellcheck` - shellcheck json output
|
110
111
|
* `custom:<path>:<class_name>` - file path and ruby class_name of a custom
|
111
112
|
formatter.
|
112
113
|
|
@@ -140,6 +141,8 @@ gergich capture eslint eslint
|
|
140
141
|
|
141
142
|
gergich capture i18nliner "rake i18nliner:check"
|
142
143
|
|
144
|
+
gergich capture shellcheck "shellcheck --format json build.sh"
|
145
|
+
|
143
146
|
gergich capture custom:./gergich/xss:Gergich::XSS "node script/xsslint"
|
144
147
|
|
145
148
|
docker-compose run --rm web eslint | gergich capture eslint -
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module Gergich
|
4
|
+
module Capture
|
5
|
+
class ShellcheckCapture < BaseCapture
|
6
|
+
# https://github.com/koalaman/shellcheck/blob/6c068e7d/ShellCheck/Formatter/Format.hs#L41-L47
|
7
|
+
SEVERITY_MAP = {
|
8
|
+
"style" => "info",
|
9
|
+
"info" => "info",
|
10
|
+
"warning" => "warn",
|
11
|
+
"error" => "error"
|
12
|
+
}.freeze
|
13
|
+
|
14
|
+
def run(output)
|
15
|
+
JSON.parse(output).map do |warning|
|
16
|
+
severity = warning.fetch("level")
|
17
|
+
{
|
18
|
+
path: warning.fetch("file"),
|
19
|
+
position: warning.fetch("line"),
|
20
|
+
message: warning.fetch("message"),
|
21
|
+
severity: SEVERITY_MAP.fetch(severity)
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require_relative "../../support/capture_shared_examples"
|
2
|
+
|
3
|
+
RSpec.describe Gergich::Capture::ShellcheckCapture do
|
4
|
+
let(:output) do
|
5
|
+
<<-'OUTPUT'
|
6
|
+
[
|
7
|
+
{
|
8
|
+
"file": "bin/sync-translations.sh",
|
9
|
+
"line": 23,
|
10
|
+
"endLine": 23,
|
11
|
+
"column": 21,
|
12
|
+
"endColumn": 21,
|
13
|
+
"level": "style",
|
14
|
+
"code": 2006,
|
15
|
+
"message": "Use $(..) instead of legacy `..`."
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"file": "bin/sync-translations.sh",
|
19
|
+
"line": 23,
|
20
|
+
"endLine": 23,
|
21
|
+
"column": 43,
|
22
|
+
"endColumn": 43,
|
23
|
+
"level": "warning",
|
24
|
+
"code": 2046,
|
25
|
+
"message": "Quote this to prevent word splitting."
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"file": "bin/sync-translations.sh",
|
29
|
+
"line": 32,
|
30
|
+
"endLine": 32,
|
31
|
+
"column": 62,
|
32
|
+
"endColumn": 62,
|
33
|
+
"level": "info",
|
34
|
+
"code": 2086,
|
35
|
+
"message": "Double quote to prevent globbing and word splitting."
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"file": "fail.sh",
|
39
|
+
"line": 3,
|
40
|
+
"endLine": 3,
|
41
|
+
"column": 12,
|
42
|
+
"endColumn": 12,
|
43
|
+
"level": "error",
|
44
|
+
"code": 1101,
|
45
|
+
"message": "Delete trailing spaces after \\ to break line (or use quotes for literal space)."
|
46
|
+
}
|
47
|
+
]
|
48
|
+
OUTPUT
|
49
|
+
end
|
50
|
+
|
51
|
+
let(:comments) do
|
52
|
+
[
|
53
|
+
{
|
54
|
+
path: "bin/sync-translations.sh",
|
55
|
+
position: 23,
|
56
|
+
message: "Use $(..) instead of legacy `..`.",
|
57
|
+
severity: "info"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
path: "bin/sync-translations.sh",
|
61
|
+
position: 23,
|
62
|
+
message: "Quote this to prevent word splitting.",
|
63
|
+
severity: "warn"
|
64
|
+
},
|
65
|
+
{
|
66
|
+
path: "bin/sync-translations.sh",
|
67
|
+
position: 32,
|
68
|
+
message: "Double quote to prevent globbing and word splitting.",
|
69
|
+
severity: "info"
|
70
|
+
},
|
71
|
+
{
|
72
|
+
path: "fail.sh",
|
73
|
+
position: 3,
|
74
|
+
message: "Delete trailing spaces after \\ to break line (or use quotes for literal space).",
|
75
|
+
severity: "error"
|
76
|
+
}
|
77
|
+
]
|
78
|
+
end
|
79
|
+
|
80
|
+
it_behaves_like "a captor"
|
81
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gergich
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/gergich/capture/flake8_capture.rb
|
118
118
|
- lib/gergich/capture/i18nliner_capture.rb
|
119
119
|
- lib/gergich/capture/rubocop_capture.rb
|
120
|
+
- lib/gergich/capture/shellcheck_capture.rb
|
120
121
|
- lib/gergich/capture/stylelint_capture.rb
|
121
122
|
- lib/gergich/capture/swiftlint_capture.rb
|
122
123
|
- lib/gergich/cli.rb
|
@@ -129,6 +130,7 @@ files:
|
|
129
130
|
- spec/gergich/capture/flake8_capture_spec.rb
|
130
131
|
- spec/gergich/capture/i18nliner_capture_spec.rb
|
131
132
|
- spec/gergich/capture/rubocop_capture_spec.rb
|
133
|
+
- spec/gergich/capture/shellcheck_capture_spec.rb
|
132
134
|
- spec/gergich/capture/stylelint_capture_spec.rb
|
133
135
|
- spec/gergich/capture/swiftlint_capture_spec.rb
|
134
136
|
- spec/gergich/capture_spec.rb
|
@@ -155,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
157
|
version: '0'
|
156
158
|
requirements: []
|
157
159
|
rubyforge_project:
|
158
|
-
rubygems_version: 2.6.
|
160
|
+
rubygems_version: 2.6.14
|
159
161
|
signing_key:
|
160
162
|
specification_version: 4
|
161
163
|
summary: Command-line tool for adding Gerrit comments
|