pkgr 1.5.1 → 1.7.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE +2 -2
- data/README.md +29 -19
- data/data/build_dependencies/debian.yml +16 -2
- data/data/build_dependencies/ubuntu.yml +6 -0
- data/data/buildpacks/amazon-2014 +2 -2
- data/data/buildpacks/amazon-2015 +2 -2
- data/data/buildpacks/centos-6 +2 -2
- data/data/buildpacks/centos-7 +2 -2
- data/data/buildpacks/centos-8 +4 -0
- data/data/buildpacks/debian-10 +4 -0
- data/data/buildpacks/debian-6 +1 -1
- data/data/buildpacks/debian-7 +2 -2
- data/data/buildpacks/debian-8 +2 -2
- data/data/buildpacks/debian-9 +4 -0
- data/data/buildpacks/fedora-20 +2 -2
- data/data/buildpacks/sles-11 +2 -2
- data/data/buildpacks/sles-12 +2 -2
- data/data/buildpacks/ubuntu-10.04 +1 -1
- data/data/buildpacks/ubuntu-12.04 +2 -2
- data/data/buildpacks/ubuntu-14.04 +2 -2
- data/data/buildpacks/ubuntu-16.04 +2 -2
- data/data/buildpacks/ubuntu-18.04 +4 -0
- data/data/buildpacks/ubuntu-20.04 +4 -0
- data/data/cli/cli.sh.erb +201 -59
- data/data/dependencies/centos.yml +6 -1
- data/data/dependencies/debian.yml +15 -4
- data/data/dependencies/sles.yml +1 -1
- data/data/dependencies/ubuntu.yml +23 -2
- data/data/hooks/postinstall.sh +2 -1
- data/data/hooks/postuninstall.sh +1 -1
- data/data/hooks/preinstall.sh +1 -1
- data/data/hooks/preuninstall.sh +1 -1
- data/data/init/systemd/default/process.service.erb +1 -1
- data/data/init/sysv/lsb-3.1/process.erb +3 -4
- data/data/init/upstart/1.5/process.conf.erb +1 -1
- data/data/logrotate/logrotate.erb +2 -2
- data/lib/pkgr/builder.rb +31 -22
- data/lib/pkgr/buildpack.rb +30 -8
- data/lib/pkgr/cli.rb +16 -3
- data/lib/pkgr/config.rb +20 -0
- data/lib/pkgr/dispatcher.rb +1 -1
- data/lib/pkgr/distributions/amazon.rb +38 -1
- data/lib/pkgr/distributions/base.rb +11 -10
- data/lib/pkgr/distributions/debian.rb +1 -1
- data/lib/pkgr/distributions/redhat.rb +0 -2
- data/lib/pkgr/distributions/ubuntu.rb +3 -3
- data/lib/pkgr/env.rb +10 -4
- data/lib/pkgr/env_value.rb +55 -0
- data/lib/pkgr/version.rb +1 -1
- metadata +14 -9
data/lib/pkgr/dispatcher.rb
CHANGED
@@ -42,7 +42,7 @@ module Pkgr
|
|
42
42
|
v = (Git.new(path).latest_tag || "").gsub(/^[^\d]+(\d.*)/, '\1')
|
43
43
|
# If it's not a Git archive, try to figure out svn revision number
|
44
44
|
begin
|
45
|
-
v = `cd #{path.to_s}&&svn info|grep Revision`.to_s.gsub!(/\D/, "") if (v !~ /^\d/)
|
45
|
+
v = `cd #{path.to_s} && svn info 2>/dev/null | grep Revision`.to_s.gsub!(/\D/, "") if (v !~ /^\d/)
|
46
46
|
rescue
|
47
47
|
end
|
48
48
|
v = "0.0.0" if v !~ /^\d/
|
@@ -1,6 +1,43 @@
|
|
1
1
|
module Pkgr
|
2
|
+
|
2
3
|
module Distributions
|
3
|
-
|
4
|
+
|
5
|
+
class Amazon < Base
|
6
|
+
|
7
|
+
def release
|
8
|
+
@release[/^[0-9]+/]
|
9
|
+
end
|
10
|
+
|
11
|
+
def runner
|
12
|
+
@runner ||= Runner.new("upstart", "1.5", "initctl")
|
13
|
+
end
|
14
|
+
|
15
|
+
def package_test_command(package)
|
16
|
+
"rpm -qa '#{package}' | grep '#{package}' > /dev/null 2>&1"
|
17
|
+
end
|
18
|
+
|
19
|
+
def package_install_command(packages)
|
20
|
+
"sudo yum -q check-update ; sudo yum install -y #{packages.map{|package| "\"#{package}\""}.join(" ")}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def installer_dependencies
|
24
|
+
super.push("which").uniq
|
25
|
+
end
|
26
|
+
|
27
|
+
def fpm_command(build_dir)
|
28
|
+
AmazonFpmCommand.new(self, build_dir).command
|
29
|
+
end
|
30
|
+
|
31
|
+
class AmazonFpmCommand < FpmCommand
|
32
|
+
def args
|
33
|
+
list = super
|
34
|
+
list << "-t" << "rpm"
|
35
|
+
list
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
4
39
|
end
|
40
|
+
|
5
41
|
end
|
42
|
+
|
6
43
|
end
|
@@ -30,7 +30,8 @@ module Pkgr
|
|
30
30
|
def target
|
31
31
|
{
|
32
32
|
"centos-6" => "el:6",
|
33
|
-
"centos-7" => "el:7"
|
33
|
+
"centos-7" => "el:7",
|
34
|
+
"centos-8" => "el:8"
|
34
35
|
}.fetch(slug, slug.sub("-", ":"))
|
35
36
|
end
|
36
37
|
|
@@ -76,12 +77,10 @@ module Pkgr
|
|
76
77
|
|
77
78
|
# Returns a list of Buildpack objects
|
78
79
|
def buildpacks
|
79
|
-
|
80
|
-
|
81
|
-
uuid = Digest::SHA1.hexdigest(custom_buildpack_uri)
|
82
|
-
[Buildpack.new(custom_buildpack_uri, :custom, config.env)]
|
80
|
+
if config.buildpacks
|
81
|
+
[:custom, config.buildpacks.map { |url| Buildpack.new(url, :custom, config.env) }]
|
83
82
|
else
|
84
|
-
load_buildpack_list
|
83
|
+
[:builtin, load_buildpack_list]
|
85
84
|
end
|
86
85
|
end # def buildpacks
|
87
86
|
|
@@ -101,16 +100,17 @@ module Pkgr
|
|
101
100
|
app_name = config.name
|
102
101
|
list = []
|
103
102
|
|
104
|
-
|
105
|
-
[
|
106
|
-
"usr/bin",
|
103
|
+
directories = [
|
107
104
|
config.home.gsub(/^\//, ""),
|
108
105
|
"etc/#{app_name}/conf.d",
|
109
106
|
"etc/default",
|
110
107
|
"var/log/#{app_name}",
|
111
108
|
"var/db/#{app_name}",
|
112
109
|
"usr/share/#{app_name}"
|
113
|
-
]
|
110
|
+
]
|
111
|
+
|
112
|
+
directories << "usr/bin" if config.cli?
|
113
|
+
directories.each{|dir| list.push Templates::DirTemplate.new(dir) }
|
114
114
|
|
115
115
|
list.push Templates::FileTemplate.new("etc/default/#{app_name}", data_file("environment", "default.erb"))
|
116
116
|
list.push Templates::FileTemplate.new("etc/logrotate.d/#{app_name}", data_file("logrotate", "logrotate.erb"))
|
@@ -195,3 +195,4 @@ end # module Pkgr
|
|
195
195
|
require 'pkgr/distributions/debian'
|
196
196
|
require 'pkgr/distributions/fedora'
|
197
197
|
require 'pkgr/distributions/sles'
|
198
|
+
require 'pkgr/distributions/amazon'
|
@@ -11,10 +11,10 @@ module Pkgr
|
|
11
11
|
|
12
12
|
def runner
|
13
13
|
@runner ||= case release
|
14
|
-
when /^
|
15
|
-
Runner.new("systemd", "default", "systemctl")
|
16
|
-
else
|
14
|
+
when /^12.04/, /^14.04/
|
17
15
|
Runner.new("upstart", "1.5", "initctl")
|
16
|
+
else
|
17
|
+
Runner.new("systemd", "default", "systemctl")
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
data/lib/pkgr/env.rb
CHANGED
@@ -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
|
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
|
data/lib/pkgr/version.rb
CHANGED
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.
|
4
|
+
version: 1.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyril Rohr
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-06 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:
|
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:
|
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: '
|
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: '
|
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:
|
@@ -132,9 +132,12 @@ files:
|
|
132
132
|
- data/buildpacks/amazon-2015
|
133
133
|
- data/buildpacks/centos-6
|
134
134
|
- data/buildpacks/centos-7
|
135
|
+
- data/buildpacks/centos-8
|
136
|
+
- data/buildpacks/debian-10
|
135
137
|
- data/buildpacks/debian-6
|
136
138
|
- data/buildpacks/debian-7
|
137
139
|
- data/buildpacks/debian-8
|
140
|
+
- data/buildpacks/debian-9
|
138
141
|
- data/buildpacks/fedora-20
|
139
142
|
- data/buildpacks/sles-11
|
140
143
|
- data/buildpacks/sles-12
|
@@ -142,6 +145,8 @@ files:
|
|
142
145
|
- data/buildpacks/ubuntu-12.04
|
143
146
|
- data/buildpacks/ubuntu-14.04
|
144
147
|
- data/buildpacks/ubuntu-16.04
|
148
|
+
- data/buildpacks/ubuntu-18.04
|
149
|
+
- data/buildpacks/ubuntu-20.04
|
145
150
|
- data/cli/cli.sh.erb
|
146
151
|
- data/dependencies/amazon.yml
|
147
152
|
- data/dependencies/centos.yml
|
@@ -185,6 +190,7 @@ files:
|
|
185
190
|
- lib/pkgr/distributions/sles.rb
|
186
191
|
- lib/pkgr/distributions/ubuntu.rb
|
187
192
|
- lib/pkgr/env.rb
|
193
|
+
- lib/pkgr/env_value.rb
|
188
194
|
- lib/pkgr/fpm_command.rb
|
189
195
|
- lib/pkgr/git.rb
|
190
196
|
- lib/pkgr/installer.rb
|
@@ -205,7 +211,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
211
|
requirements:
|
206
212
|
- - ">="
|
207
213
|
- !ruby/object:Gem::Version
|
208
|
-
version: 1.
|
214
|
+
version: 1.9.3
|
209
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
216
|
requirements:
|
211
217
|
- - ">="
|
@@ -213,9 +219,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
219
|
version: '1.3'
|
214
220
|
requirements: []
|
215
221
|
rubyforge_project:
|
216
|
-
rubygems_version: 2.
|
222
|
+
rubygems_version: 2.7.9
|
217
223
|
signing_key:
|
218
224
|
specification_version: 4
|
219
225
|
summary: Package any Ruby, NodeJS or Go app as a deb or rpm package
|
220
226
|
test_files: []
|
221
|
-
has_rdoc:
|