pkgr 1.5.1 → 1.6.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.
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: