docker-compose 1.0.3 → 1.0.4

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: 78490b9c376e57d362db13f54f4c5d93bd6f20af
4
- data.tar.gz: 39a3bc062b31eb381e83cb596dfa1c19c2156b4f
3
+ metadata.gz: b9be484af8c4f5250961c4df03f04aaceebd7fd2
4
+ data.tar.gz: a16663183f5a512c9344ad2110fba19179f1a339
5
5
  SHA512:
6
- metadata.gz: b58bd253248787fa1a5b0d21b4f3840678e8b81f867d57bf81ef5d4031385678f49505a21b5ae4e51f41cec2610203bfe0f8dc958e3832117433e83ef66fc0ce
7
- data.tar.gz: 68b1f9549d04957745cd9319abdd9083c4021470caf3267471e8a8abc7d9252653c57590d8a3b5d912711165e15e18fb2152e79fc2fb977a18b909226c4e1a78
6
+ metadata.gz: b6eb3ed59f86318bbced3d41196924d7c1588f65d367dbbc4f9bd03d4b9524a53d599ba34b142e0b2c779cb94b74c0ecd8657bcfec8d77f43c67872b9e303997
7
+ data.tar.gz: 8998e342c4af0c810c073cd49dab423e451ad95ed9471e58c4687181a3a59f5e50227ee6a118bbba367584fa8c5d053f59697e369101772644ce413378958fdf
@@ -15,6 +15,9 @@ module Docker::Compose
15
15
  # allowed by the docker-compose CLI, and that options are sometimes renamed
16
16
  # for clarity, e.g. the "-d" flag always becomes the "detached:" kwarg.
17
17
  class Session
18
+ # A Regex that matches all ANSI escape sequences.
19
+ ANSI = /\033\[([0-9];?)+[a-z]/
20
+
18
21
  # Working directory (determines compose project name); default is Dir.pwd
19
22
  attr_reader :dir
20
23
 
@@ -53,7 +56,7 @@ module Docker::Compose
53
56
  containers = Collection.new
54
57
 
55
58
  lines.each do |id|
56
- containers << docker_ps(id)
59
+ containers << docker_ps(strip_ansi(id))
57
60
  end
58
61
 
59
62
  containers
@@ -171,7 +174,7 @@ module Docker::Compose
171
174
  @shell.interactive = false
172
175
 
173
176
  o = opts(protocol: [protocol, 'tcp'], index: [index, 1])
174
- s = run!('port', o, service, port).strip
177
+ s = strip_ansi(run!('port', o, service, port).strip)
175
178
  (!s.empty? && s) || nil
176
179
  ensure
177
180
  @shell.interactive = inter
@@ -241,16 +244,17 @@ module Docker::Compose
241
244
  def docker_ps(id)
242
245
  cmd = @shell.run('docker', 'ps', a: true, f: "id=#{id}", format: Container::PS_FMT).join
243
246
  status, out, err = cmd.status, cmd.captured_output, cmd.captured_error
244
- raise Error.new('docker ps', status, "Unexpected output") unless status.success?
247
+ raise Error.new('docker ps', status, out+err) unless status.success?
245
248
  lines = out.split(/[\r\n]+/)
246
249
  return nil if lines.empty?
247
- l = lines.shift
250
+ l = strip_ansi(lines.shift)
248
251
  m = parse(l)
249
252
  raise Error.new('docker ps', status, "Cannot parse output: '#{l}'") unless m
253
+ raise Error.new('docker ps', status, "Cannot parse output: '#{l}'") unless m.size == 7
250
254
  return Container.new(*m)
251
255
  end
252
256
 
253
- # strip default-values options. the value of each kw should be a pair:
257
+ # strip default-valued options. the value of each kw should be a pair:
254
258
  # [0] is present value
255
259
  # [1] is default value
256
260
  def opts(**kws)
@@ -261,6 +265,11 @@ module Docker::Compose
261
265
  res
262
266
  end
263
267
 
268
+ # strip all ANSI escape sequences from str
269
+ def strip_ansi(str)
270
+ str.gsub(ANSI, '')
271
+ end
272
+
264
273
  # parse values enclosed within parentheses; values may contain nested
265
274
  # matching pairs of parentheses
266
275
  def parse(str)
@@ -1,6 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Docker
3
3
  module Compose
4
- VERSION = '1.0.3'
4
+ VERSION = '1.0.4'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-compose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Spataro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-15 00:00:00.000000000 Z
11
+ date: 2017-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backticks