rake-tasks-docker 0.1.0 → 0.2.0

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: 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