pkgr 1.5.1 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +2 -2
  3. data/README.md +20 -9
  4. data/data/build_dependencies/debian.yml +12 -2
  5. data/data/buildpacks/amazon-2014 +2 -2
  6. data/data/buildpacks/amazon-2015 +2 -2
  7. data/data/buildpacks/centos-6 +2 -2
  8. data/data/buildpacks/centos-7 +2 -2
  9. data/data/buildpacks/debian-6 +1 -1
  10. data/data/buildpacks/debian-7 +2 -2
  11. data/data/buildpacks/debian-8 +2 -2
  12. data/data/buildpacks/debian-9 +4 -0
  13. data/data/buildpacks/fedora-20 +2 -2
  14. data/data/buildpacks/sles-11 +2 -2
  15. data/data/buildpacks/sles-12 +2 -2
  16. data/data/buildpacks/ubuntu-10.04 +1 -1
  17. data/data/buildpacks/ubuntu-12.04 +2 -2
  18. data/data/buildpacks/ubuntu-14.04 +2 -2
  19. data/data/buildpacks/ubuntu-16.04 +2 -2
  20. data/data/cli/cli.sh.erb +176 -57
  21. data/data/dependencies/debian.yml +15 -4
  22. data/data/dependencies/sles.yml +1 -1
  23. data/data/hooks/postinstall.sh +2 -1
  24. data/data/hooks/postuninstall.sh +1 -1
  25. data/data/hooks/preinstall.sh +1 -1
  26. data/data/hooks/preuninstall.sh +1 -1
  27. data/data/init/systemd/default/process.service.erb +1 -1
  28. data/data/init/sysv/lsb-3.1/process.erb +3 -4
  29. data/data/init/upstart/1.5/process.conf.erb +1 -1
  30. data/lib/pkgr/builder.rb +31 -22
  31. data/lib/pkgr/buildpack.rb +17 -5
  32. data/lib/pkgr/cli.rb +7 -3
  33. data/lib/pkgr/config.rb +10 -0
  34. data/lib/pkgr/distributions/amazon.rb +38 -1
  35. data/lib/pkgr/distributions/base.rb +9 -9
  36. data/lib/pkgr/distributions/debian.rb +1 -1
  37. data/lib/pkgr/distributions/redhat.rb +0 -2
  38. data/lib/pkgr/env.rb +10 -4
  39. data/lib/pkgr/env_value.rb +55 -0
  40. data/lib/pkgr/version.rb +1 -1
  41. metadata +10 -9
@@ -1,13 +1,20 @@
1
+ require 'pkgr/env_value'
2
+
1
3
  module Pkgr
2
4
  class Env
3
5
  attr_reader :variables
4
6
 
7
+ def self.from_export(file)
8
+ new(File.read(file).split("\n").map { |line| line.sub(/^export\s+/, "") })
9
+ end
10
+
5
11
  def initialize(variables = nil)
6
12
  @variables = variables || []
13
+ @variables.compact!
7
14
  end
8
15
 
9
16
  def to_s
10
- to_hash.map {|k, v| " #{k}=#{v}" }.join
17
+ to_hash.map{|k, v| [k, v.quote].join("=")}.join(" ")
11
18
  end
12
19
 
13
20
  def present?
@@ -23,13 +30,12 @@ module Pkgr
23
30
  end
24
31
 
25
32
  private
26
-
27
33
  def create_env_hash_from_string
28
34
  return {} if variables == []
29
35
 
30
36
  variables.inject({}) do |h, var|
31
- name, value = var.split('=')
32
- h[name.strip] = value.strip
37
+ name, value = var.split('=', 2)
38
+ h[name.strip] = EnvValue.new(value || "").strip.unquote
33
39
  h
34
40
  end
35
41
  end
@@ -0,0 +1,55 @@
1
+ class EnvValue < String
2
+ def quote(type=:double, count=nil)
3
+ if Integer === type
4
+ tmp = count
5
+ count = type
6
+ type = tmp || :mixed
7
+ else
8
+ count ||= 1
9
+ end
10
+
11
+ type = type.to_s unless Integer===type
12
+
13
+ case type
14
+ when "'", 'single', 's', 1
15
+ f = "'" * count
16
+ b = f
17
+ when '"', 'double', 'd', 2
18
+ f = '"' * count
19
+ b = f
20
+ when '`', 'back', 'b', -1
21
+ f = '`' * count
22
+ b = f
23
+ when "`'", 'bracket', 'sb'
24
+ f = "`" * count
25
+ b = "'" * count
26
+ when "'\"", 'mixed', "m", Integer
27
+ c = (count.to_f / 2).to_i
28
+ f = '"' * c
29
+ b = f
30
+ if count % 2 != 0
31
+ f = "'" + f
32
+ b = b + "'"
33
+ end
34
+ else
35
+ raise ArgumentError, "unrecognized quote type -- #{type}"
36
+ end
37
+ "#{f}#{self}#{b}"
38
+ end
39
+
40
+ def unquote
41
+ s = self.dup
42
+
43
+ case self[0,1]
44
+ when "'", '"', '`'
45
+ s[0] = ''
46
+ end
47
+
48
+ case self[-1,1]
49
+ when "'", '"', '`'
50
+ s[-1] = ''
51
+ end
52
+
53
+ return s
54
+ end
55
+ end
@@ -1,3 +1,3 @@
1
1
  module Pkgr
2
- VERSION = "1.5.1"
2
+ VERSION = "1.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkgr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyril Rohr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-08 00:00:00.000000000 Z
11
+ date: 2018-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.0'
19
+ version: 12.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '10.0'
26
+ version: 12.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2'
103
+ version: '3'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2'
110
+ version: '3'
111
111
  description: Simplify the deployment of your applications by automatically packaging
112
112
  your application and its dependencies on multiple platforms.
113
113
  email:
@@ -135,6 +135,7 @@ files:
135
135
  - data/buildpacks/debian-6
136
136
  - data/buildpacks/debian-7
137
137
  - data/buildpacks/debian-8
138
+ - data/buildpacks/debian-9
138
139
  - data/buildpacks/fedora-20
139
140
  - data/buildpacks/sles-11
140
141
  - data/buildpacks/sles-12
@@ -185,6 +186,7 @@ files:
185
186
  - lib/pkgr/distributions/sles.rb
186
187
  - lib/pkgr/distributions/ubuntu.rb
187
188
  - lib/pkgr/env.rb
189
+ - lib/pkgr/env_value.rb
188
190
  - lib/pkgr/fpm_command.rb
189
191
  - lib/pkgr/git.rb
190
192
  - lib/pkgr/installer.rb
@@ -205,7 +207,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
205
207
  requirements:
206
208
  - - ">="
207
209
  - !ruby/object:Gem::Version
208
- version: 1.8.7
210
+ version: 1.9.3
209
211
  required_rubygems_version: !ruby/object:Gem::Requirement
210
212
  requirements:
211
213
  - - ">="
@@ -213,9 +215,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
213
215
  version: '1.3'
214
216
  requirements: []
215
217
  rubyforge_project:
216
- rubygems_version: 2.2.2
218
+ rubygems_version: 2.6.11
217
219
  signing_key:
218
220
  specification_version: 4
219
221
  summary: Package any Ruby, NodeJS or Go app as a deb or rpm package
220
222
  test_files: []
221
- has_rdoc: