pkgr 1.3.2 → 1.4.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.
@@ -1,51 +1,9 @@
1
- require 'pkgr/buildpack'
2
- require 'pkgr/process'
3
- require 'pkgr/distributions/base'
4
-
5
1
  module Pkgr
6
2
  module Distributions
7
- # Contains the various components required to make a packaged app integrate well with a Debian system.
8
- class Redhat < Base
9
- # Only keep major adigits
10
- def release
11
- @release[/^[0-9]+/]
12
- end
13
-
3
+ class Redhat < Fedora
14
4
  def runner
15
5
  @runner ||= Runner.new("sysv", "lsb-3.1")
16
6
  end
17
-
18
- def package_test_command(package)
19
- "rpm -qa '#{package}' | grep '#{package}' > /dev/null 2>&1"
20
- end
21
-
22
- def package_install_command(packages)
23
- "sudo yum check-update && sudo yum install -y #{packages.map{|package| "\"#{package}\""}.join(" ")}"
24
- end
25
-
26
- def fpm_command(build_dir, config)
27
- %{
28
- fpm -t rpm -s dir --verbose --force \
29
- -C "#{build_dir}" \
30
- -n "#{config.name}" \
31
- --version "#{config.version}" \
32
- --iteration "#{config.iteration}" \
33
- --url "#{config.homepage}" \
34
- --provides "#{config.name}" \
35
- --deb-user "root" \
36
- --deb-group "root" \
37
- -a "#{config.architecture}" \
38
- --description "#{config.description}" \
39
- --maintainer "#{config.maintainer}" \
40
- --template-scripts \
41
- --before-install #{preinstall_file(config)} \
42
- --after-install #{postinstall_file(config)} \
43
- #{dependencies(config.dependencies).map{|d| "-d '#{d}'"}.join(" ")} \
44
- .
45
- }
46
- end
47
7
  end
48
8
  end
49
9
  end
50
-
51
- require 'pkgr/distributions/centos'
@@ -12,6 +12,12 @@ module Pkgr
12
12
  def runner
13
13
  @runner ||= Runner.new("upstart", "1.5")
14
14
  end
15
+
16
+ def templates
17
+ list = super
18
+ list.push Templates::DirTemplate.new("etc/init")
19
+ list
20
+ end
15
21
  end
16
22
  end
17
23
  end
@@ -0,0 +1,66 @@
1
+ require 'pkgr/command'
2
+ require 'fileutils'
3
+
4
+ module Pkgr
5
+ class Installer
6
+ DEFAULT_URL = "https://github.com/pkgr/installer.git#master"
7
+
8
+ attr_reader :url, :branch
9
+ attr_reader :distribution
10
+
11
+ def initialize(installer_url, distribution)
12
+ @installer_url = installer_url
13
+ @installer_url = DEFAULT_URL if @installer_url == true || @installer_url.nil? || @installer_url.empty?
14
+ @url, @branch = @installer_url.split("#", 2)
15
+ @branch ||= "master"
16
+ @distribution = distribution
17
+ end
18
+
19
+ def shell
20
+ Command.new(Pkgr.logger)
21
+ end
22
+
23
+ def setup
24
+ shell.run!("git clone --depth=1 --branch=\"#{branch}\" \"#{url}\" #{installer_tmp_dir}")
25
+ self
26
+ end
27
+
28
+ def call(config)
29
+ Dir.chdir(installer_tmp_dir) do
30
+ config.wizards.each do |addon_group|
31
+ addon_group.each do |addon|
32
+ addon_dir = "addons/#{addon.name}"
33
+ FileUtils.mkdir_p addon_dir
34
+ puts "-----> [wizard] adding #{addon.name} wizard (#{addon.url}##{addon.branch})"
35
+ shell.run!(
36
+ "curl -L --max-redirs 3 --retry 5 -s '#{addon.tarball_url}' | tar xzf - --strip-components=1 -C '#{addon_dir}'")
37
+ end
38
+ end
39
+
40
+ shell.stream!(
41
+ "./bin/compile",
42
+ {
43
+ "APP_NAME" => config.name,
44
+ "APP_VERSION" => config.version,
45
+ "APP_ITERATION" => config.iteration,
46
+ "APP_SAFE_NAME" => config.safe_name,
47
+ "APP_USER" => config.user,
48
+ "APP_GROUP" => config.group,
49
+ "APP_WORKSPACE" => config.source_dir,
50
+ # mysql|postgres,apache2|nginx,smtp
51
+ "APP_WIZARDS" => config.wizards.map{|addon_group| addon_group.map(&:name).join("|")}.join(",")
52
+ }
53
+ )
54
+ end
55
+
56
+ FileUtils.mv installer_tmp_dir, File.join(config.build_dir, "usr", "share", config.name, "installer")
57
+
58
+ config.dependencies.push(*distribution.installer_dependencies)
59
+ config
60
+ end
61
+
62
+ def installer_tmp_dir
63
+ @installer_tmp_dir ||= Dir.mktmpdir
64
+ end
65
+ end
66
+ end
@@ -1,3 +1,3 @@
1
1
  module Pkgr
2
- VERSION = "1.3.2"
2
+ VERSION = "1.4.0"
3
3
  end
metadata CHANGED
@@ -1,126 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkgr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
5
- prerelease:
4
+ version: 1.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Cyril Rohr
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-27 00:00:00.000000000 Z
11
+ date: 2014-10-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: thor
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fpm
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: facter
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - ">="
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: mixlib-log
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - ">="
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - ">="
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: mixlib-shellout
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - ">="
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - ">="
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: rspec
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ~>
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
103
  version: '2'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ~>
108
+ - - "~>"
124
109
  - !ruby/object:Gem::Version
125
110
  version: '2'
126
111
  description: Embeds your app dependencies (e.g. a specific ruby version and you gems
@@ -135,41 +120,30 @@ extra_rdoc_files:
135
120
  - LICENSE
136
121
  - README.md
137
122
  files:
138
- - lib/pkgr/builder.rb
139
- - lib/pkgr/buildpack.rb
140
- - lib/pkgr/cli.rb
141
- - lib/pkgr/config.rb
142
- - lib/pkgr/dispatcher.rb
143
- - lib/pkgr/distributions/base.rb
144
- - lib/pkgr/distributions/centos.rb
145
- - lib/pkgr/distributions/debian.rb
146
- - lib/pkgr/distributions/redhat.rb
147
- - lib/pkgr/distributions/runner.rb
148
- - lib/pkgr/distributions/ubuntu.rb
149
- - lib/pkgr/distributions.rb
150
- - lib/pkgr/env.rb
151
- - lib/pkgr/git.rb
152
- - lib/pkgr/process.rb
153
- - lib/pkgr/templates/dir_template.rb
154
- - lib/pkgr/templates/file_template.rb
155
- - lib/pkgr/version.rb
156
- - lib/pkgr.rb
123
+ - LICENSE
124
+ - README.md
125
+ - bin/pkgr
157
126
  - data/build_dependencies/centos.yml
158
127
  - data/build_dependencies/debian.yml
128
+ - data/build_dependencies/fedora.yml
159
129
  - data/build_dependencies/ubuntu.yml
160
130
  - data/buildpacks/centos-6
161
131
  - data/buildpacks/debian-6
162
132
  - data/buildpacks/debian-7
133
+ - data/buildpacks/fedora-20
163
134
  - data/buildpacks/ubuntu-10.04
164
135
  - data/buildpacks/ubuntu-12.04
165
136
  - data/buildpacks/ubuntu-14.04
166
137
  - data/cli/cli.sh.erb
167
138
  - data/dependencies/centos.yml
168
139
  - data/dependencies/debian.yml
140
+ - data/dependencies/fedora.yml
169
141
  - data/dependencies/ubuntu.yml
170
142
  - data/environment/default.erb
171
143
  - data/hooks/postinstall.sh
144
+ - data/hooks/postuninstall.sh
172
145
  - data/hooks/preinstall.sh
146
+ - data/hooks/preuninstall.sh
173
147
  - data/init/sysv/lsb-3.1/master.erb
174
148
  - data/init/sysv/lsb-3.1/process.erb
175
149
  - data/init/sysv/lsb-3.1/process_master.erb
@@ -178,33 +152,54 @@ files:
178
152
  - data/init/upstart/1.5/process.conf.erb
179
153
  - data/init/upstart/1.5/process_master.conf.erb
180
154
  - data/logrotate/logrotate.erb
181
- - LICENSE
182
- - README.md
183
- - bin/pkgr
155
+ - lib/pkgr.rb
156
+ - lib/pkgr/addon.rb
157
+ - lib/pkgr/builder.rb
158
+ - lib/pkgr/buildpack.rb
159
+ - lib/pkgr/cli.rb
160
+ - lib/pkgr/command.rb
161
+ - lib/pkgr/config.rb
162
+ - lib/pkgr/cron.rb
163
+ - lib/pkgr/dispatcher.rb
164
+ - lib/pkgr/distributions.rb
165
+ - lib/pkgr/distributions/base.rb
166
+ - lib/pkgr/distributions/centos.rb
167
+ - lib/pkgr/distributions/debian.rb
168
+ - lib/pkgr/distributions/fedora.rb
169
+ - lib/pkgr/distributions/redhat.rb
170
+ - lib/pkgr/distributions/runner.rb
171
+ - lib/pkgr/distributions/ubuntu.rb
172
+ - lib/pkgr/env.rb
173
+ - lib/pkgr/git.rb
174
+ - lib/pkgr/installer.rb
175
+ - lib/pkgr/process.rb
176
+ - lib/pkgr/templates/dir_template.rb
177
+ - lib/pkgr/templates/file_template.rb
178
+ - lib/pkgr/version.rb
184
179
  homepage: http://github.com/crohr/pkgr
185
180
  licenses:
186
181
  - MIT
182
+ metadata: {}
187
183
  post_install_message:
188
184
  rdoc_options:
189
- - --charset=UTF-8
185
+ - "--charset=UTF-8"
190
186
  require_paths:
191
187
  - lib
192
188
  required_ruby_version: !ruby/object:Gem::Requirement
193
- none: false
194
189
  requirements:
195
- - - ! '>='
190
+ - - ">="
196
191
  - !ruby/object:Gem::Version
197
192
  version: 1.8.7
198
193
  required_rubygems_version: !ruby/object:Gem::Requirement
199
- none: false
200
194
  requirements:
201
- - - ! '>='
195
+ - - ">="
202
196
  - !ruby/object:Gem::Version
203
197
  version: '1.3'
204
198
  requirements: []
205
199
  rubyforge_project:
206
- rubygems_version: 1.8.23
200
+ rubygems_version: 2.2.2
207
201
  signing_key:
208
- specification_version: 3
202
+ specification_version: 4
209
203
  summary: Package any app as a debian package
210
204
  test_files: []
205
+ has_rdoc: