lint_trap 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd8b059140d1d4487ff867109b06886cee712990
4
- data.tar.gz: 546a5bf4794e33d96cce6a0caf1eb06154f657e5
3
+ metadata.gz: 91b370e674d44dad5e9d53a8679ef006512a2c59
4
+ data.tar.gz: 479b9f36c2720e98a64dc89e1cecc07868dc3f9a
5
5
  SHA512:
6
- metadata.gz: e5da1f4256d21805a0000e717de18bb7525544d1e9951ec6dff7c0532ba03815271fc0be2f85483fcc40d05545b26eb929cdaf143f0b1469394df5c050053e6a
7
- data.tar.gz: 161a54aebfc888fa3cfe6524674be8f28dcddd23d9a35df5dcc0e66b903f92e57cbcc718aeb45a88393f6ed17f9c7beea57aca28cfe0a527c7456b7279d6aa98
6
+ metadata.gz: 5e3a5e71fc5a801515d19e139f94ac7c3745c29cf7b9e37e101a3588f9f4dd61f9d4f4037a78759f2e92e9ad0aaf5f1e1f10026dcc93ed1e0c8b81789e5a7824
7
+ data.tar.gz: c421bc8a945487ee9b53b6d6ab9aa2a49c3e74b622755fa3f9cfb4d6bf6995ef8096873669113f6beeb423101b77213ded9dfae851e8b7e7945b86a35c5f3e1e
@@ -8,9 +8,10 @@ module LintTrap
8
8
 
9
9
  LOCAL_CONFIG_PATH = Pathname.new(File.expand_path('../../../../config', __FILE__))
10
10
 
11
- def initialize(image, repo_path)
11
+ def initialize(image, repo_path, options = {})
12
12
  @image = image
13
13
  @repo_path = Pathname.new(repo_path)
14
+ @options = default_options.merge(options)
14
15
  end
15
16
 
16
17
  def pull
@@ -31,7 +32,13 @@ module LintTrap
31
32
 
32
33
  protected
33
34
 
34
- attr_reader :image, :repo_path
35
+ attr_reader :image, :repo_path, :options
36
+
37
+ private
38
+
39
+ def default_options
40
+ {}
41
+ end
35
42
  end
36
43
  end
37
44
  end
@@ -42,8 +42,12 @@ module LintTrap
42
42
 
43
43
  private
44
44
 
45
+ def default_options
46
+ {remove_container: true}
47
+ end
48
+
45
49
  def flags
46
- [
50
+ flags = [
47
51
  # '-m', '50m', # memory
48
52
  # '-c', '1', # number of cpus
49
53
  '--net="none"',
@@ -52,7 +56,11 @@ module LintTrap
52
56
  '-v', "#{repo_path}:#{CODE_PATH}",
53
57
  "--workdir=#{CODE_PATH}",
54
58
  '--user=lint_trap'
55
- ].join(' ')
59
+ ]
60
+
61
+ flags.unshift('--rm') if options[:remove_container]
62
+
63
+ flags.join(' ')
56
64
  end
57
65
  end
58
66
  end
@@ -1,3 +1,3 @@
1
1
  module LintTrap
2
- VERSION = '0.0.13'
2
+ VERSION = '0.0.14'
3
3
  end
data/spec/command_spec.rb CHANGED
@@ -6,6 +6,8 @@ describe LintTrap::Command do
6
6
  let(:container){LintTrap::Container::Docker.new('lintci/rubocop', fixture_path)}
7
7
 
8
8
  describe '#run' do
9
+ let(:container){LintTrap::Container::Docker.new('lintci/rubocop', fixture_path, remove_container: ENV['CI'].nil?)}
10
+
9
11
  it 'generates the expected output' do
10
12
  success = command.run(container) do |io|
11
13
  expect(io.read).to eq(" 1\tlint\n")
@@ -18,7 +20,7 @@ describe LintTrap::Command do
18
20
  describe '#command/#to_s' do
19
21
  it 'generates a wrapped executable command' do
20
22
  expect(command.to_s(container)).to eq(
21
- 'docker run --net="none" --privileged=false '\
23
+ 'docker run --rm --net="none" --privileged=false '\
22
24
  "-v #{LintTrap::Container::Base::LOCAL_CONFIG_PATH}:/config "\
23
25
  "-v #{fixture_path}:/src --workdir=/src --user=lint_trap lintci/rubocop "\
24
26
  'cat -b /src/lint.txt'
@@ -24,13 +24,28 @@ describe LintTrap::Container::Docker do
24
24
  end
25
25
 
26
26
  describe '#wrap' do
27
- it 'wraps the command passed in with a call to docker' do
28
- expect(container.wrap('ls')).to eq(
29
- 'docker run --net="none" --privileged=false '\
30
- "-v #{described_class::LOCAL_CONFIG_PATH}:/config "\
31
- '-v /local/path:/src '\
32
- "--workdir=/src --user=lint_trap #{image} ls"
33
- )
27
+ context 'with remove_container option' do
28
+ it 'wraps the command passed in with a call to docker' do
29
+ expect(container.wrap('ls')).to eq(
30
+ 'docker run --rm --net="none" --privileged=false '\
31
+ "-v #{described_class::LOCAL_CONFIG_PATH}:/config "\
32
+ '-v /local/path:/src '\
33
+ "--workdir=/src --user=lint_trap #{image} ls"
34
+ )
35
+ end
36
+ end
37
+
38
+ context 'without remove_container option' do
39
+ subject(:container){described_class.new(image, '/local/path', remove_container: false)}
40
+
41
+ it 'wraps the command passed in with a call to docker' do
42
+ expect(container.wrap('ls')).to eq(
43
+ 'docker run --net="none" --privileged=false '\
44
+ "-v #{described_class::LOCAL_CONFIG_PATH}:/config "\
45
+ '-v /local/path:/src '\
46
+ "--workdir=/src --user=lint_trap #{image} ls"
47
+ )
48
+ end
34
49
  end
35
50
  end
36
51
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::Base do
4
4
  let(:image){LintTrap::Linter::RuboCop.new.image_version}
5
- let(:container){LintTrap::Container::Docker.new(image, fixture_path)}
5
+ let(:container){LintTrap::Container::Docker.new(image, fixture_path, remove_container: ENV['CI'].nil?)}
6
6
  let(:options){{}}
7
7
  subject(:linter) do
8
8
  ErrorLinter = Class.new(described_class) do
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::CheckStyle do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::CoffeeLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::CPPCheck do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -26,7 +26,7 @@ describe LintTrap::Linter::CPPCheck do
26
26
  length: nil,
27
27
  rule: 'unassignedVariable',
28
28
  severity: 'style',
29
- message: "Variable 'p' is not assigned a value."
29
+ message: start_with("Variable 'p' is not assigned a value.") # Other text sometimes gets added
30
30
  }, {
31
31
  file: file,
32
32
  line: '4',
@@ -34,7 +34,7 @@ describe LintTrap::Linter::CPPCheck do
34
34
  length: nil,
35
35
  rule: 'uninitvar',
36
36
  severity: 'error',
37
- message: 'Uninitialized variable: p'
37
+ message: start_with('Uninitialized variable: p')
38
38
  }, {
39
39
  file: file,
40
40
  line: '1',
@@ -42,7 +42,7 @@ describe LintTrap::Linter::CPPCheck do
42
42
  length: nil,
43
43
  rule: 'unusedFunction',
44
44
  severity: 'style',
45
- message: "The function 'f' is never used."
45
+ message: start_with("The function 'f' is never used.")
46
46
  }
47
47
  )
48
48
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::CSSLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::GoLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::JSHint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::JSONLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::PyLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::RuboCop do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Linter::SCSSLint do
4
- let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path)}
4
+ let(:container){LintTrap::Container::Docker.new(linter.image_version, fixture_path, remove_container: ENV['CI'].nil?)}
5
5
  let(:options){{}}
6
6
  subject(:linter){described_class.new}
7
7
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Parser::Base do
4
4
  let(:image){LintTrap::Linter::RuboCop.new.image_version}
5
- let(:container){LintTrap::Container::Docker.new(image, fixture_path)}
5
+ let(:container){LintTrap::Container::Docker.new(image, fixture_path, remove_container: ENV['CI'].nil?)}
6
6
  subject(:parser){Class.new(described_class).new(StringIO.new, container)}
7
7
 
8
8
  describe '#parse' do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe LintTrap::Parser::Line do
4
4
  let(:image){LintTrap::Linter::RuboCop.new.image_version}
5
- let(:container){LintTrap::Container::Docker.new(image, fixture_path)}
5
+ let(:container){LintTrap::Container::Docker.new(image, fixture_path, remove_container: ENV['CI'].nil?)}
6
6
  subject(:parser){Class.new(described_class).new(StringIO.new('violation'), container)}
7
7
 
8
8
  describe '#parse' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lint_trap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allen Madsen