fpm-fry 0.4.3 → 0.5.1

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
- SHA1:
3
- metadata.gz: 1a003057b29ec223cd456f6126986791b59720b8
4
- data.tar.gz: 2fb6802772c2167ba1e3bcf83909d5a9d85c55b9
2
+ SHA256:
3
+ metadata.gz: 4911dfb40c91dd585e0ccbbad499a4d71eebadd4c00846b982ed100b186c963f
4
+ data.tar.gz: 7122bfa7728cb976d3b12010e63be177ccc23d00c360c4830317369f1d1012f1
5
5
  SHA512:
6
- metadata.gz: f69c6642e5fa3c06a12fa9188c88212cec937d3ced11ab023d34d093acf844bc0cc11cd6b94e6dd7573ffc3d94be7b797496d0b3f316b4c8f74dff195ee32191
7
- data.tar.gz: 10bc187bbd9efdec6628dc3d9dcbeb5f5314c4bcdad9f9caae4f5e77a41284275feb83e0f977ab9c62ed3dd8ee39d92d3e0f3a9ce88b35add8c967caaa3de3ab
6
+ metadata.gz: 9e1ef45f2c7b25b759e3f170b0a3a41d745e686a8a008da43494f6c53166f9695b241f3f2e45dab5fafacfd18a88ae5320e3e7831c4114d5a5e0cbbea08cf10c
7
+ data.tar.gz: fbe991bb53e481eab8293c0631079af94795f60dc6381635448fac81aaea0b879fe97e50860688654795a820d2813fab581bc06881223514c289bdd70b9dd42f
@@ -197,7 +197,7 @@ module FPM; module Fry
197
197
  )
198
198
 
199
199
  client.post(
200
- path: client.url('containers',container,'attach?stderr=1&stdout=1&stream=1'),
200
+ path: client.url('containers',container,'attach?stderr=1&stdout=1&stream=1&logs=1'),
201
201
  body: '',
202
202
  expects: [200],
203
203
  middlewares: [
@@ -10,11 +10,9 @@ module FPM::Fry::Plugin ; module Service
10
10
 
11
11
  def render(file)
12
12
  _erbout = ""
13
- erb = ERB.new(
14
- IO.read(File.join(File.dirname(__FILE__),'..','templates',file)),
15
- 0, "-"
16
- )
17
- eval(erb.src,nil,File.join(File.dirname(__FILE__),'..','templates',file))
13
+ path = File.join(File.dirname(__FILE__),'..','templates',file)
14
+ erb = ERB.new(IO.read(path), trim_mode: "-")
15
+ eval erb.src, nil, path
18
16
  return _erbout
19
17
  end
20
18
 
@@ -44,7 +44,7 @@ module FPM; module Fry ; module Source
44
44
  base = File.expand_path(inner.prefix, base)
45
45
  end
46
46
  package.patches.each do |patch|
47
- cmd = ['patch','-p1','-i',patch[:file]]
47
+ cmd = ['patch','-t','-p1','-i',patch[:file]]
48
48
  chdir = base
49
49
  if patch.key? :chdir
50
50
  given_chdir = File.expand_path(patch[:chdir],workdir)
@@ -16,38 +16,56 @@ module FPM; module Fry
16
16
  if datum[:response]
17
17
  # probably mocked
18
18
  if datum[:response][:body]
19
- @parser.parse(StringIO.new(datum[:response][:body]))
19
+ headers = datum[:response][:headers]
20
+ fake_socket = StringIO.new(datum[:response][:body])
21
+ parse_response_data(fake_socket, headers)
20
22
  end
21
- return @stack.response_call(datum)
22
23
  else
23
- socket = datum[:connection].send(:socket)
24
- begin
25
- line = socket.readline
26
- match = /^HTTP\/\d+\.\d+\s(\d{3})\s/.match(line)
27
- end while !match
28
- status = match[1].to_i
29
-
30
- datum[:response] = {
31
- :body => '',
32
- :headers => Excon::Headers.new,
33
- :status => status,
34
- :remote_ip => socket.respond_to?(:remote_ip) && socket.remote_ip,
35
- }
36
- Excon::Response.parse_headers(socket, datum)
24
+ socket, headers = extract_socket_and_headers(datum)
25
+ parse_response_data(socket, headers)
26
+ end
27
+ @stack.response_call(datum)
28
+ end
29
+
30
+ private
31
+
32
+ def extract_socket_and_headers(datum)
33
+ socket = datum[:connection].send(:socket)
34
+ begin
35
+ line = socket.readline
36
+ match = /^HTTP\/\d+\.\d+\s(\d{3})\s/.match(line)
37
+ end while !match
38
+ status = match[1].to_i
39
+
40
+ headers = Excon::Headers.new
41
+ datum[:response] = {
42
+ :body => '',
43
+ :headers => headers,
44
+ :status => status,
45
+ :remote_ip => socket.respond_to?(:remote_ip) && socket.remote_ip,
46
+ }
47
+ Excon::Response.parse_headers(socket, datum)
48
+
49
+ [socket, headers]
50
+ end
37
51
 
52
+ def parse_response_data(socket, headers)
53
+ if headers["Transfer-Encoding"] == "chunked"
54
+ @parser.parse_chunked(socket)
55
+ else
38
56
  @parser.parse(socket)
39
- return @stack.response_call(datum)
40
57
  end
41
58
  end
42
59
 
43
60
  end
44
61
 
45
- attr :out, :err
62
+ attr :out, :err, :streams
46
63
 
47
64
  def initialize(out, err)
48
65
  @out, @err = out, err
49
66
  @state = :null
50
67
  @left = 0
68
+ @streams = { 1 => out, 2 => err }
51
69
  end
52
70
 
53
71
  def new(stack)
@@ -55,8 +73,6 @@ module FPM; module Fry
55
73
  end
56
74
 
57
75
  def parse(socket)
58
- left = 0
59
- streams = {1 => out, 2 => err}
60
76
  loop do
61
77
  type = read_exactly(socket,4){|part|
62
78
  if part.bytesize == 0
@@ -94,5 +110,16 @@ module FPM; module Fry
94
110
  return buf
95
111
  end
96
112
 
113
+ def parse_chunked(socket)
114
+ loop do
115
+ line = socket.readline
116
+ chunk_size = line.chomp.to_i(16)
117
+ break if chunk_size.zero?
118
+ chunk = socket.read(chunk_size)
119
+ parse(StringIO.new(chunk))
120
+ line = socket.readline
121
+ end
122
+ end
123
+
97
124
  end
98
125
  end ; end
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
3
  case "$1" in
4
- remove)
4
+ remove|purge)
5
5
  <%= remove.join("\n") %>
6
6
  ;;
7
7
  upgrade)
@@ -1,7 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
3
  case "$1" in
4
- remove)
4
+ remove|purge)
5
5
  <%= remove.join("\n") %>
6
6
  ;;
7
7
  upgrade)
metadata CHANGED
@@ -1,17 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fpm-fry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxime Lagresle
8
8
  - Stefan Kaes
9
9
  - Sebastian Brandt
10
10
  - Hannes Georg
11
- autorequire:
11
+ - Julian Tabel
12
+ - Dennis Konert
13
+ autorequire:
12
14
  bindir: bin
13
15
  cert_chain: []
14
- date: 2019-01-25 00:00:00.000000000 Z
16
+ date: 2022-07-29 00:00:00.000000000 Z
15
17
  dependencies:
16
18
  - !ruby/object:Gem::Dependency
17
19
  name: excon
@@ -19,42 +21,28 @@ dependencies:
19
21
  requirements:
20
22
  - - "~>"
21
23
  - !ruby/object:Gem::Version
22
- version: '0.30'
24
+ version: 0.71.0
23
25
  type: :runtime
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
26
28
  requirements:
27
29
  - - "~>"
28
30
  - !ruby/object:Gem::Version
29
- version: '0.30'
31
+ version: 0.71.0
30
32
  - !ruby/object:Gem::Dependency
31
33
  name: fpm
32
34
  requirement: !ruby/object:Gem::Requirement
33
35
  requirements:
34
36
  - - "~>"
35
37
  - !ruby/object:Gem::Version
36
- version: '1.0'
38
+ version: '1.13'
37
39
  type: :runtime
38
40
  prerelease: false
39
41
  version_requirements: !ruby/object:Gem::Requirement
40
42
  requirements:
41
43
  - - "~>"
42
44
  - !ruby/object:Gem::Version
43
- version: '1.0'
44
- - !ruby/object:Gem::Dependency
45
- name: json
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: '1.8'
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '1.8'
45
+ version: '1.13'
58
46
  - !ruby/object:Gem::Dependency
59
47
  name: rake
60
48
  requirement: !ruby/object:Gem::Requirement
@@ -107,32 +95,32 @@ dependencies:
107
95
  name: coveralls
108
96
  requirement: !ruby/object:Gem::Requirement
109
97
  requirements:
110
- - - "~>"
98
+ - - ">="
111
99
  - !ruby/object:Gem::Version
112
- version: '0'
100
+ version: 0.8.23
113
101
  type: :development
114
102
  prerelease: false
115
103
  version_requirements: !ruby/object:Gem::Requirement
116
104
  requirements:
117
- - - "~>"
105
+ - - ">="
118
106
  - !ruby/object:Gem::Version
119
- version: '0'
107
+ version: 0.8.23
120
108
  - !ruby/object:Gem::Dependency
121
109
  name: simplecov
122
110
  requirement: !ruby/object:Gem::Requirement
123
111
  requirements:
124
- - - "~>"
112
+ - - ">="
125
113
  - !ruby/object:Gem::Version
126
114
  version: '0'
127
115
  type: :development
128
116
  prerelease: false
129
117
  version_requirements: !ruby/object:Gem::Requirement
130
118
  requirements:
131
- - - "~>"
119
+ - - ">="
132
120
  - !ruby/object:Gem::Version
133
121
  version: '0'
134
122
  description: deep-fried package builder
135
- email: maxime.lagresle@xing.com
123
+ email: dennis.konert@new-work.se
136
124
  executables:
137
125
  - fpm-fry
138
126
  extensions: []
@@ -194,7 +182,7 @@ homepage: https://github.com/xing/fpm-fry
194
182
  licenses:
195
183
  - MIT
196
184
  metadata: {}
197
- post_install_message:
185
+ post_install_message:
198
186
  rdoc_options: []
199
187
  require_paths:
200
188
  - lib
@@ -209,9 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
197
  - !ruby/object:Gem::Version
210
198
  version: '0'
211
199
  requirements: []
212
- rubyforge_project:
213
- rubygems_version: 2.5.2.3
214
- signing_key:
200
+ rubygems_version: 3.3.15
201
+ signing_key:
215
202
  specification_version: 4
216
203
  summary: FPM Fry
217
204
  test_files: []