drydocker 0.1.10 → 0.1.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d56d9a43969a8ecb6a8d21beba4748f77919f7f
4
- data.tar.gz: f21d164b82a9673bba353aba4715bbad82c23e3a
3
+ metadata.gz: e515536ab04252f04c92cadb6b76e99ab0b1a7b3
4
+ data.tar.gz: dfb2a251084eaa6ebee891b52c1943d06938b08b
5
5
  SHA512:
6
- metadata.gz: 65b6cc8827a12ef41b4d4eeb14e3ce3bf35282ab022baba039a8a53e8c4b5ceae6d13507fa8eed1f73cd05387889aeb2f1991583778cd939f4d0e78ccbd886c0
7
- data.tar.gz: d919d88b8e89fe948335e39a339b600cb2c3de5a3321fadd5b2f764385d931c2d525850e27462ba02fed6905a880ae90b64821b2f8122ac54cc4d6ba05deea5e
6
+ metadata.gz: 86942d938f939875ab39bb10c506f9818cb2c7971e7b5ead9a90f034aff785fa4e260632a91de548a355c177faa1a0541d334a360b8dbe0ab7cc65bac379084b
7
+ data.tar.gz: dd27b38e29a2b4539910289155295526d160846d540863c6307fd9c3b0079cb81016595af162be0466781ac6f7b57a90c757959a7e920f7cdc7650c92d93f65b
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ gem 'ptools', '~> 1.3'
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
+ gem 'codeclimate-test-reporter'
12
13
  gem 'shoulda', '~> 3.5'
13
14
  gem 'rdoc', '~> 3.12'
14
15
  gem 'bundler', '~> 1.0'
@@ -11,6 +11,8 @@ GEM
11
11
  builder (3.2.2)
12
12
  celluloid (0.16.0)
13
13
  timers (~> 4.0.0)
14
+ codeclimate-test-reporter (0.4.6)
15
+ simplecov (>= 0.7.1, < 1.0.0)
14
16
  descendants_tracker (0.0.4)
15
17
  thread_safe (~> 0.3, >= 0.3.1)
16
18
  diff-lcs (1.2.5)
@@ -44,7 +46,7 @@ GEM
44
46
  rake
45
47
  rdoc
46
48
  json (1.8.2)
47
- jwt (1.2.0)
49
+ jwt (1.2.1)
48
50
  listen (2.8.5)
49
51
  celluloid (>= 0.15.2)
50
52
  rb-fsevent (>= 0.9.3)
@@ -54,7 +56,7 @@ GEM
54
56
  multi_json (1.10.1)
55
57
  multi_xml (0.5.5)
56
58
  multipart-post (2.0.0)
57
- nokogiri (1.6.6.1)
59
+ nokogiri (1.6.6.2)
58
60
  mini_portile (~> 0.6.0)
59
61
  oauth2 (1.0.0)
60
62
  faraday (>= 0.8, < 0.10)
@@ -105,6 +107,7 @@ PLATFORMS
105
107
 
106
108
  DEPENDENCIES
107
109
  bundler (~> 1.0)
110
+ codeclimate-test-reporter
108
111
  fuubar (~> 2.0)
109
112
  jeweler (~> 2.0)
110
113
  listen (~> 2.8)
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # drydocker
2
2
 
3
3
  [![wercker status](https://app.wercker.com/status/b00d4339862ef12b880f0022b6d20b2a/m "wercker status")](https://app.wercker.com/project/bykey/b00d4339862ef12b880f0022b6d20b2a)
4
+ [![Code Climate](https://codeclimate.com/github/silarsis/drydocker/badges/gpa.svg)](https://codeclimate.com/github/silarsis/drydocker)
5
+ [![Test Coverage](https://codeclimate.com/github/silarsis/drydocker/badges/coverage.svg)](https://codeclimate.com/github/silarsis/drydocker)
4
6
 
5
7
  Drydocker provides a simple wrapper to run tests inside a container every
6
8
  time you make a change to your code. It listens to filesystem changes on your
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.10
1
+ 0.1.11
@@ -22,6 +22,10 @@ def parse(args)
22
22
  options[:name] = name
23
23
  end
24
24
 
25
+ opts.on("-C", "--clean", "clean old container before running") do |clean|
26
+ options[:clean] = clean
27
+ end
28
+
25
29
  opts.on("-c", "--command [COMMAND]",
26
30
  "command to run, default '#{options[:command]}'") do |cmd|
27
31
  options[:command] = cmd
@@ -42,9 +46,18 @@ def parse(args)
42
46
  options[:path] = path
43
47
  end
44
48
 
49
+ opts.on("-o", "--[no-]once", "run once and exit") do |once|
50
+ options[:once] = once
51
+ end
52
+
45
53
  opts.on("-v", "--[no-]verbose", "verbose output") do |verbose|
46
54
  options[:verbose] = verbose
47
55
  end
56
+
57
+ opts.on("--version", "Show version") do
58
+ puts File.exist?("VERSION") ? File.read("VERSION").strip : ""
59
+ exit
60
+ end
48
61
  end
49
62
  opt_parser.parse!(args)
50
63
  options
@@ -53,6 +66,10 @@ end
53
66
  options = parse(ARGV)
54
67
  config = Drydocker::Config.new(options)
55
68
  monitor = Drydocker::Monitor.new(config)
56
- monitor.clean_containers
57
- monitor.listen
58
- sleep
69
+ monitor.clean_containers if options[:clean]
70
+ if options[:once]
71
+ monitor.run_or_start
72
+ else
73
+ monitor.listen
74
+ sleep
75
+ end
@@ -1,7 +1,7 @@
1
- require 'listen'
2
- require 'ptools'
3
- require 'logger'
4
- require 'shellwords'
1
+ require "listen"
2
+ require "ptools"
3
+ require "logger"
4
+ require "shellwords"
5
5
 
6
6
  module Drydocker
7
7
  # Configuration file reader
@@ -11,8 +11,8 @@ module Drydocker
11
11
  def self.default_config
12
12
  {
13
13
  name: nil,
14
- image: 'silarsis/drydocker',
15
- command: 'rspec spec',
14
+ image: "silarsis/drydocker",
15
+ command: "rspec spec",
16
16
  entrypoint: nil,
17
17
  path: `pwd`.strip,
18
18
  verbose: false
@@ -33,7 +33,7 @@ module Drydocker
33
33
  private
34
34
 
35
35
  def name_from_image
36
- "#{image.gsub(/[\/:]/, '-')}-test"
36
+ "#{image.gsub(/[\/:]/, "-")}-test"
37
37
  end
38
38
  end
39
39
 
@@ -52,24 +52,29 @@ module Drydocker
52
52
  run_or_start
53
53
  end
54
54
  listener.start # not blocking
55
- config.logger.info('now listening')
55
+ config.logger.info("now listening")
56
56
  end
57
57
 
58
58
  def clean_containers
59
- fail 'No docker found' if File.which('docker').nil?
59
+ fail "No docker found" if File.which("docker").nil?
60
60
  return unless system(docker_check_cmd)
61
- config.logger.debug('cleaning up previous containers')
61
+ config.logger.debug("cleaning up previous containers")
62
62
  `docker kill #{config.name}`
63
63
  `docker rm #{config.name}`
64
64
  end
65
65
 
66
+ def run_or_start
67
+ system(docker_check_cmd) ? start : run
68
+ end
69
+
66
70
  private
67
71
 
68
72
  def docker_run_cmd
69
73
  %W(
70
- #{docker_cmd} #{env_flags} #{name_opt} #{path_opt} #{entrypoint_opt} #{config.image}
71
- sh -c #{command}
72
- ).reject { |x| x == '' }.join(' ')
74
+ #{docker_cmd}
75
+ #{env_flags} #{name_opt} #{path_opt} #{entrypoint_opt}
76
+ #{config.image} sh -c #{command}
77
+ ).reject { |x| x == "" }.join(" ")
73
78
  end
74
79
 
75
80
  def env_flags
@@ -85,7 +90,7 @@ module Drydocker
85
90
  end
86
91
 
87
92
  def docker_cmd
88
- 'docker run -it -w /app'
93
+ "docker run -it -w /app"
89
94
  end
90
95
 
91
96
  def name_opt
@@ -93,7 +98,8 @@ module Drydocker
93
98
  end
94
99
 
95
100
  def entrypoint_opt
96
- config.entrypoint.nil? ? '' : "--entrypoint #{config.entrypoint.shellescape}"
101
+ return "" if config.entrypoint.nil?
102
+ "--entrypoint #{config.entrypoint.shellescape}"
97
103
  end
98
104
 
99
105
  def path_opt
@@ -101,7 +107,7 @@ module Drydocker
101
107
  end
102
108
 
103
109
  def command
104
- config.command.nil? ? '' : config.command
110
+ config.command.nil? ? "" : config.command
105
111
  end
106
112
 
107
113
  def run
@@ -113,9 +119,5 @@ module Drydocker
113
119
  config.logger.debug(docker_start_cmd)
114
120
  system(docker_start_cmd)
115
121
  end
116
-
117
- def run_or_start
118
- system(docker_check_cmd) ? start : run
119
- end
120
122
  end
121
123
  end
@@ -1,3 +1,6 @@
1
+ require 'codeclimate-test-reporter'
2
+ CodeClimate::TestReporter.start
3
+
1
4
  $LOAD_PATH << File.expand_path('./lib')
2
5
 
3
6
  RSpec.configure do |config|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drydocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Littlejohn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-23 00:00:00.000000000 Z
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: codeclimate-test-reporter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: shoulda
43
57
  requirement: !ruby/object:Gem::Requirement