pkgr 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: