rake-tasks-docker 0.1.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 119f1621e3e67d4a1f4d2435881dc7963c2fd8ca
4
- data.tar.gz: 5e486310416959a0d4c46be1edc9c655d57398b8
3
+ metadata.gz: 69093da94cc65614593c83f1b9197e93cb5898f3
4
+ data.tar.gz: a41ee58f6119697b2b497abaa15a7cc82ab74593
5
5
  SHA512:
6
- metadata.gz: 315fd879188238fa0c0232eedbc0a793342320f1ff1c47018d278fe35e6bef5b9fc6cc6ead8ed32c8eaf3bc1cc29fd2e2d5f3c18b0429899a4b3cdf999daf208
7
- data.tar.gz: 61d7b02414adb36a9c4f583f81c51d3a056339888eacd2a4ac40fb45f69b729a335437470179fee24aef3718ef5cbcff394c03b5298751bbeffc0622346ca581
6
+ metadata.gz: a5171f03053091a6c430d80bfd3d29235d8ca665c1eb2d0b8063b7cd7de3e71bbec75280bb9489a71464a01f861927c379f0cfff388d99c313a29f626a2359cc
7
+ data.tar.gz: 48dafc6a1247117dcc22b69cf7d12c24c313226c7c838c50352c4998d149742300812c1b9e26773caa2b317937da1287b3d7e34c97a65162401e3064786b8e77
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ # Bundler
2
+ /Gemfile.lock
3
+ /pkg
@@ -4,14 +4,12 @@ require 'timeout'
4
4
  require_relative 'services'
5
5
 
6
6
  namespace :docker do
7
- task :status, :services do |task, args|
8
- services = RakeTasksDocker::Services.new(args[:services] ? args[:services].split(' ') : [])
7
+ RakeTasksDocker::Services.task :status, :services do |task, services|
9
8
  puts services.status
10
9
  exit(1) if services.status != 'started'
11
10
  end
12
11
 
13
- task :up, :services do |task, args|
14
- services = RakeTasksDocker::Services.new(args[:services] ? args[:services].split(' ') : [])
12
+ RakeTasksDocker::Services.task :up, :services do |task, services|
15
13
  pid = nil
16
14
 
17
15
  begin
@@ -41,4 +39,12 @@ namespace :docker do
41
39
  Process.kill('TERM', pid) unless pid.nil?
42
40
  end
43
41
  end
42
+
43
+ RakeTasksDocker::Services.task :stop, :services do |task, services|
44
+ Process.wait(services.stop)
45
+ end
46
+
47
+ RakeTasksDocker::Services.task :down do |task, services|
48
+ Process.wait(services.down)
49
+ end
44
50
  end
@@ -2,12 +2,21 @@ require 'json'
2
2
 
3
3
  module RakeTasksDocker
4
4
  class Services
5
+ def self.from_args(args)
6
+ self.new(args[:services] ? args[:services].split(' ') : [])
7
+ end
8
+
5
9
  def initialize(services = [])
6
10
  @services = services
7
11
  end
8
12
 
13
+ def self.task(*task_args, &block)
14
+ Rake::Task.define_task *task_args do |task, args|
15
+ block.call task, self.from_args(args)
16
+ end
17
+ end
18
+
9
19
  def refresh
10
- containers = `docker-compose ps -q #{@services.join(' ')}`.split("\n")
11
20
  @inspections = []
12
21
  containers.each do |container_ref|
13
22
  @inspections << JSON.parse(`docker inspect #{container_ref}`).first
@@ -32,7 +41,9 @@ module RakeTasksDocker
32
41
  end
33
42
 
34
43
  def status_from_states(states)
35
- if states.empty? || !(states.values & ['exited (non-zero exit code)', 'running (unhealthy)', 'restarting', 'dead']).empty?
44
+ if states.empty?
45
+ return 'not started'
46
+ elsif !(states.values & ['exited (non-zero exit code)', 'running (unhealthy)', 'restarting', 'dead']).empty?
36
47
  return 'failed'
37
48
  elsif !(states.values & ['created', 'running (starting)']).empty?
38
49
  return 'starting'
@@ -53,5 +64,19 @@ module RakeTasksDocker
53
64
  def logs
54
65
  Process.spawn 'docker-compose', 'logs', '-f', *@services
55
66
  end
67
+
68
+ def stop
69
+ Process.spawn 'docker-compose', 'stop', *@services
70
+ end
71
+
72
+ def down
73
+ Process.spawn 'docker-compose', 'down', '--volumes', '--rmi', 'local'
74
+ end
75
+
76
+ protected
77
+
78
+ def containers
79
+ `docker-compose ps -q #{@services.join(' ')}`.split("\n")
80
+ end
56
81
  end
57
- end
82
+ end
@@ -1,3 +1,3 @@
1
1
  module RakeTasksDocker
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-tasks-docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Thompson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-11 00:00:00.000000000 Z
11
+ date: 2018-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -51,9 +51,9 @@ executables: []
51
51
  extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
+ - ".gitignore"
54
55
  - ".rspec"
55
56
  - Gemfile
56
- - Gemfile.lock
57
57
  - Rakefile
58
58
  - lib/rake-tasks-docker.rb
59
59
  - lib/rake-tasks-docker/rake_task.rb
data/Gemfile.lock DELETED
@@ -1,34 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- rake-tasks-docker (0.1.0)
5
- rake (>= 10.0, <= 12)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- diff-lcs (1.3)
11
- rake (12.0.0)
12
- rspec (3.6.0)
13
- rspec-core (~> 3.6.0)
14
- rspec-expectations (~> 3.6.0)
15
- rspec-mocks (~> 3.6.0)
16
- rspec-core (3.6.0)
17
- rspec-support (~> 3.6.0)
18
- rspec-expectations (3.6.0)
19
- diff-lcs (>= 1.2.0, < 2.0)
20
- rspec-support (~> 3.6.0)
21
- rspec-mocks (3.6.0)
22
- diff-lcs (>= 1.2.0, < 2.0)
23
- rspec-support (~> 3.6.0)
24
- rspec-support (3.6.0)
25
-
26
- PLATFORMS
27
- ruby
28
-
29
- DEPENDENCIES
30
- rake-tasks-docker!
31
- rspec (~> 3.6)
32
-
33
- BUNDLED WITH
34
- 1.12.5