cure-fpm 1.3.3b → 1.6.0b

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELIST +73 -0
  3. data/CONTRIBUTORS +1 -1
  4. data/LICENSE +1 -1
  5. data/lib/fpm.rb +2 -0
  6. data/lib/fpm/command.rb +100 -50
  7. data/lib/fpm/package.rb +42 -28
  8. data/lib/fpm/package/apk.rb +510 -0
  9. data/lib/fpm/package/cpan.rb +50 -25
  10. data/lib/fpm/package/deb.rb +211 -47
  11. data/lib/fpm/package/dir.rb +29 -28
  12. data/lib/fpm/package/empty.rb +6 -0
  13. data/lib/fpm/package/freebsd.rb +144 -0
  14. data/lib/fpm/package/gem.rb +5 -5
  15. data/lib/fpm/package/npm.rb +2 -2
  16. data/lib/fpm/package/osxpkg.rb +8 -7
  17. data/lib/fpm/package/p5p.rb +124 -0
  18. data/lib/fpm/package/pacman.rb +399 -0
  19. data/lib/fpm/package/pleaserun.rb +63 -0
  20. data/lib/fpm/package/pyfpm/get_metadata.py +9 -1
  21. data/lib/fpm/package/python.rb +19 -7
  22. data/lib/fpm/package/rpm.rb +58 -18
  23. data/lib/fpm/package/sh.rb +1 -7
  24. data/lib/fpm/package/solaris.rb +1 -1
  25. data/lib/fpm/package/tar.rb +14 -2
  26. data/lib/fpm/package/virtualenv.rb +145 -0
  27. data/lib/fpm/package/zip.rb +1 -1
  28. data/lib/fpm/rake_task.rb +60 -0
  29. data/lib/fpm/util.rb +176 -48
  30. data/lib/fpm/util/tar_writer.rb +80 -0
  31. data/lib/fpm/version.rb +1 -1
  32. data/templates/deb/postinst_upgrade.sh.erb +33 -2
  33. data/templates/deb/postrm_upgrade.sh.erb +10 -1
  34. data/templates/deb/preinst_upgrade.sh.erb +11 -2
  35. data/templates/deb/prerm_upgrade.sh.erb +14 -2
  36. data/templates/p5p_metadata.erb +12 -0
  37. data/templates/pacman.erb +47 -0
  38. data/templates/pacman/INSTALL.erb +41 -0
  39. data/templates/pleaserun/generate-cleanup.sh +17 -0
  40. data/templates/pleaserun/install-path.sh +17 -0
  41. data/templates/pleaserun/install.sh +117 -0
  42. data/templates/pleaserun/scripts/after-install.sh +4 -0
  43. data/templates/pleaserun/scripts/before-remove.sh +12 -0
  44. data/templates/rpm.erb +38 -6
  45. data/templates/sh.erb +38 -3
  46. metadata +81 -9
@@ -27,6 +27,7 @@ function main() {
27
27
  wait_for_others
28
28
  kill_others
29
29
  set_owner
30
+ pre_install
30
31
  unpack_payload
31
32
 
32
33
  if [ "$UNPACK_ONLY" == "1" ] ; then
@@ -61,8 +62,9 @@ function slug_already_current(){
61
62
  if [ "$FORCE" == "1" ] ; then
62
63
  log "Force was specified. Proceeding with install after renaming live directory to allow running service to shutdown correctly."
63
64
  local real_dir=$(readlink ${INSTALL_ROOT}/current)
64
- if [ -f ${real_dir}.old ] ; then
65
+ if [ -e ${real_dir}.old ] ; then
65
66
  # remove that .old directory, if needed
67
+ log "removing existing .old version of release"
66
68
  rm -rf ${real_dir}.old
67
69
  fi
68
70
  mv ${real_dir} ${real_dir}.old
@@ -173,6 +175,14 @@ function set_owner(){
173
175
  log "Installing as user $OWNER"
174
176
  }
175
177
 
178
+ function pre_install() {
179
+ # for rationale on the `:`, see #871
180
+ :
181
+ <% if script?(:before_install) -%>
182
+ <%= script(:before_install) %>
183
+ <% end %>
184
+ }
185
+
176
186
  function unpack_payload(){
177
187
  if [ "$FORCE" == "1" ] || [ ! "$(ls -A $INSTALL_DIR)" ] ; then
178
188
  log "Unpacking payload . . ."
@@ -187,6 +197,7 @@ function unpack_payload(){
187
197
  function run_post_install(){
188
198
  local AFTER_INSTALL=$INSTALL_DIR/.fpm/after_install
189
199
  if [ -r $AFTER_INSTALL ] ; then
200
+ set_post_install_vars
190
201
  chmod +x $AFTER_INSTALL
191
202
  log "Running post install script"
192
203
  output=$($AFTER_INSTALL 2>&1)
@@ -197,11 +208,23 @@ function run_post_install(){
197
208
  return 0
198
209
  }
199
210
 
211
+ function set_post_install_vars(){
212
+ # for rationale on the `:`, see #871
213
+ :
214
+ <% if respond_to?(:package_metadata)%>
215
+ <% package_metadata_hash = JSON.parse(package_metadata)%>
216
+ <% package_metadata_hash.each do |k,v| %>
217
+ <%= "export #{k.upcase}='#{v}'; "%>
218
+ <% end %>
219
+ <% end %>
220
+ }
221
+
200
222
  function create_symlinks(){
201
223
  [ -n "$USE_FLAT_RELEASE_DIRECTORY" ] && return
202
224
 
203
225
  export CURRENT_DIR="$INSTALL_ROOT/current"
204
- if [ -e "$CURRENT_DIR" ] ; then
226
+ if [ -e "$CURRENT_DIR" ] || [ -h "$CURRENT_DIR" ] ; then
227
+ log "Removing current symlink"
205
228
  OLD_CURRENT_TARGET=$(readlink $CURRENT_DIR)
206
229
  rm "$CURRENT_DIR"
207
230
  fi
@@ -242,6 +265,12 @@ function clean_out_old_releases(){
242
265
  fi
243
266
  }
244
267
 
268
+ function print_package_metadata(){
269
+ local metadata_line=$(grep -a -n -m1 '__METADATA__$' $0 | sed 's/:.*//')
270
+ local archive_line=$(grep -a -n -m1 '__ARCHIVE__$' $0 | sed 's/:.*//')
271
+ sed -n "$((metadata_line + 1)),$((archive_line - 1)) p" $0
272
+ }
273
+
245
274
  function print_usage(){
246
275
  echo "Usage: `basename $0` [options]"
247
276
  echo "Install this package"
@@ -275,7 +304,7 @@ function log(){
275
304
  }
276
305
 
277
306
  function parse_args() {
278
- args=`getopt i:o:rfuyvh $*`
307
+ args=`getopt mi:o:rfuyvh $*`
279
308
 
280
309
  if [ $? != 0 ] ; then
281
310
  print_usage
@@ -286,6 +315,10 @@ function parse_args() {
286
315
  do
287
316
  case "$i"
288
317
  in
318
+ -m)
319
+ print_package_metadata
320
+ exit 0
321
+ shift;;
289
322
  -r)
290
323
  USE_FLAT_RELEASE_DIRECTORY=1
291
324
  shift;;
@@ -331,4 +364,6 @@ main
331
364
  save_environment $(fpm_metadata_file)
332
365
  exit 0
333
366
 
367
+ __METADATA__
368
+ <%= package_metadata if respond_to?(:package_metadata) %>
334
369
  __ARCHIVE__
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cure-fpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3b
4
+ version: 1.6.0b
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ward Vandewege
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-16 00:00:00.000000000 Z
11
+ date: 2016-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.0.9
61
+ version: 0.0.10
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.0.9
68
+ version: 0.0.10
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: clamp
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.6'
75
+ version: 1.0.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.6'
82
+ version: 1.0.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: childprocess
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +108,62 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10'
125
+ - !ruby/object:Gem::Dependency
126
+ name: archive-tar-minitar
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: ruby-xz
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pleaserun
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.0.24
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.0.24
111
167
  - !ruby/object:Gem::Dependency
112
168
  name: rspec
113
169
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +184,14 @@ dependencies:
128
184
  requirements:
129
185
  - - "~>"
130
186
  - !ruby/object:Gem::Version
131
- version: 0.0.5
187
+ version: 1.0.0
132
188
  type: :development
133
189
  prerelease: false
134
190
  version_requirements: !ruby/object:Gem::Requirement
135
191
  requirements:
136
192
  - - "~>"
137
193
  - !ruby/object:Gem::Version
138
- version: 0.0.5
194
+ version: 1.0.0
139
195
  - !ruby/object:Gem::Dependency
140
196
  name: pry
141
197
  requirement: !ruby/object:Gem::Requirement
@@ -182,15 +238,20 @@ files:
182
238
  - lib/fpm/errors.rb
183
239
  - lib/fpm/namespace.rb
184
240
  - lib/fpm/package.rb
241
+ - lib/fpm/package/apk.rb
185
242
  - lib/fpm/package/cpan.rb
186
243
  - lib/fpm/package/deb.rb
187
244
  - lib/fpm/package/dir.rb
188
245
  - lib/fpm/package/empty.rb
246
+ - lib/fpm/package/freebsd.rb
189
247
  - lib/fpm/package/gem.rb
190
248
  - lib/fpm/package/npm.rb
191
249
  - lib/fpm/package/osxpkg.rb
250
+ - lib/fpm/package/p5p.rb
251
+ - lib/fpm/package/pacman.rb
192
252
  - lib/fpm/package/pear.rb
193
253
  - lib/fpm/package/pkgin.rb
254
+ - lib/fpm/package/pleaserun.rb
194
255
  - lib/fpm/package/puppet.rb
195
256
  - lib/fpm/package/pyfpm/__init__.py
196
257
  - lib/fpm/package/pyfpm/__init__.pyc
@@ -201,8 +262,11 @@ files:
201
262
  - lib/fpm/package/sh.rb
202
263
  - lib/fpm/package/solaris.rb
203
264
  - lib/fpm/package/tar.rb
265
+ - lib/fpm/package/virtualenv.rb
204
266
  - lib/fpm/package/zip.rb
267
+ - lib/fpm/rake_task.rb
205
268
  - lib/fpm/util.rb
269
+ - lib/fpm/util/tar_writer.rb
206
270
  - lib/fpm/version.rb
207
271
  - templates/deb.erb
208
272
  - templates/deb/changelog.erb
@@ -212,6 +276,14 @@ files:
212
276
  - templates/deb/preinst_upgrade.sh.erb
213
277
  - templates/deb/prerm_upgrade.sh.erb
214
278
  - templates/osxpkg.erb
279
+ - templates/p5p_metadata.erb
280
+ - templates/pacman.erb
281
+ - templates/pacman/INSTALL.erb
282
+ - templates/pleaserun/generate-cleanup.sh
283
+ - templates/pleaserun/install-path.sh
284
+ - templates/pleaserun/install.sh
285
+ - templates/pleaserun/scripts/after-install.sh
286
+ - templates/pleaserun/scripts/before-remove.sh
215
287
  - templates/puppet/package.pp.erb
216
288
  - templates/puppet/package/remove.pp.erb
217
289
  - templates/rpm.erb
@@ -239,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
311
  version: 1.3.1
240
312
  requirements: []
241
313
  rubyforge_project:
242
- rubygems_version: 2.4.5
314
+ rubygems_version: 2.4.8
243
315
  signing_key:
244
316
  specification_version: 4
245
317
  summary: fpm - package building and mangling