fpm-aeppert 1.6.2

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 (61) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELIST +661 -0
  3. data/CONTRIBUTORS +26 -0
  4. data/LICENSE +21 -0
  5. data/bin/fpm +8 -0
  6. data/lib/fpm.rb +20 -0
  7. data/lib/fpm/command.rb +648 -0
  8. data/lib/fpm/errors.rb +4 -0
  9. data/lib/fpm/namespace.rb +4 -0
  10. data/lib/fpm/package.rb +539 -0
  11. data/lib/fpm/package/apk.rb +510 -0
  12. data/lib/fpm/package/cpan.rb +405 -0
  13. data/lib/fpm/package/deb.rb +935 -0
  14. data/lib/fpm/package/dir.rb +221 -0
  15. data/lib/fpm/package/empty.rb +13 -0
  16. data/lib/fpm/package/freebsd.rb +147 -0
  17. data/lib/fpm/package/gem.rb +243 -0
  18. data/lib/fpm/package/npm.rb +120 -0
  19. data/lib/fpm/package/osxpkg.rb +165 -0
  20. data/lib/fpm/package/p5p.rb +124 -0
  21. data/lib/fpm/package/pacman.rb +403 -0
  22. data/lib/fpm/package/pear.rb +117 -0
  23. data/lib/fpm/package/pkgin.rb +35 -0
  24. data/lib/fpm/package/pleaserun.rb +63 -0
  25. data/lib/fpm/package/puppet.rb +120 -0
  26. data/lib/fpm/package/pyfpm/__init__.py +1 -0
  27. data/lib/fpm/package/pyfpm/get_metadata.py +104 -0
  28. data/lib/fpm/package/python.rb +318 -0
  29. data/lib/fpm/package/rpm.rb +593 -0
  30. data/lib/fpm/package/sh.rb +69 -0
  31. data/lib/fpm/package/solaris.rb +95 -0
  32. data/lib/fpm/package/tar.rb +86 -0
  33. data/lib/fpm/package/virtualenv.rb +164 -0
  34. data/lib/fpm/package/zip.rb +63 -0
  35. data/lib/fpm/rake_task.rb +60 -0
  36. data/lib/fpm/util.rb +358 -0
  37. data/lib/fpm/util/tar_writer.rb +80 -0
  38. data/lib/fpm/version.rb +3 -0
  39. data/templates/deb.erb +52 -0
  40. data/templates/deb/changelog.erb +5 -0
  41. data/templates/deb/ldconfig.sh.erb +13 -0
  42. data/templates/deb/postinst_upgrade.sh.erb +62 -0
  43. data/templates/deb/postrm_upgrade.sh.erb +46 -0
  44. data/templates/deb/preinst_upgrade.sh.erb +41 -0
  45. data/templates/deb/prerm_upgrade.sh.erb +39 -0
  46. data/templates/osxpkg.erb +11 -0
  47. data/templates/p5p_metadata.erb +12 -0
  48. data/templates/pacman.erb +47 -0
  49. data/templates/pacman/INSTALL.erb +41 -0
  50. data/templates/pleaserun/generate-cleanup.sh +17 -0
  51. data/templates/pleaserun/install-path.sh +17 -0
  52. data/templates/pleaserun/install.sh +117 -0
  53. data/templates/pleaserun/scripts/after-install.sh +4 -0
  54. data/templates/pleaserun/scripts/before-remove.sh +12 -0
  55. data/templates/puppet/package.pp.erb +34 -0
  56. data/templates/puppet/package/remove.pp.erb +13 -0
  57. data/templates/rpm.erb +260 -0
  58. data/templates/rpm/filesystem_list +14514 -0
  59. data/templates/sh.erb +369 -0
  60. data/templates/solaris.erb +15 -0
  61. metadata +322 -0
data/templates/sh.erb ADDED
@@ -0,0 +1,369 @@
1
+ #!/bin/bash
2
+
3
+ # bail out if any part of this fails
4
+ set -e
5
+
6
+ # This is the self-extracting installer script for an FPM shell installer package.
7
+ # It contains the logic to unpack a tar archive appended to the end of this script
8
+ # and, optionally, to run post install logic.
9
+ # Run the package file with -h to see a usage message or look at the print_usage method.
10
+ #
11
+ # The post install scripts are called with INSTALL_ROOT, INSTALL_DIR and VERBOSE exported
12
+ # into the environment for their use.
13
+ #
14
+ # INSTALL_ROOT = the path passed in with -i or a relative directory of the name of the package
15
+ # file with no extension
16
+ # INSTALL_DIR = the same as INSTALL_ROOT unless -c (capistrano release directory) argumetn
17
+ # is used. Then it is $INSTALL_ROOT/releases/<datestamp>
18
+ # CURRENT_DIR = if -c argument is used, this is set to the $INSTALL_ROOT/current which is
19
+ # symlinked to INSTALL_DIR
20
+ # VERBOSE = is set if the package was called with -v for verbose output
21
+ function main() {
22
+ set_install_dir
23
+
24
+ if ! slug_already_current ; then
25
+
26
+ create_pid
27
+ wait_for_others
28
+ kill_others
29
+ set_owner
30
+ pre_install
31
+ unpack_payload
32
+
33
+ if [ "$UNPACK_ONLY" == "1" ] ; then
34
+ echo "Unpacking complete, not moving symlinks or restarting because unpack only was specified."
35
+ else
36
+ create_symlinks
37
+
38
+ set +e # don't exit on errors to allow us to clean up
39
+ if ! run_post_install ; then
40
+ revert_symlinks
41
+ log "Installation failed."
42
+ exit 1
43
+ else
44
+ clean_out_old_releases
45
+ log "Installation complete."
46
+ fi
47
+ fi
48
+
49
+ else
50
+ echo "This slug is already installed in 'current'. Specify -f to force reinstall. Exiting."
51
+ fi
52
+ }
53
+
54
+ # check if this slug is already running and exit unless `force` specified
55
+ # Note: this only works with RELEASE_ID is used
56
+ function slug_already_current(){
57
+ local this_slug=$(basename $0 .slug)
58
+ local current=$(basename "$(readlink ${INSTALL_ROOT}/current)")
59
+ log "'current' symlink points to slug: ${current}"
60
+
61
+ if [ "$this_slug" == "$current" ] ; then
62
+ if [ "$FORCE" == "1" ] ; then
63
+ log "Force was specified. Proceeding with install after renaming live directory to allow running service to shutdown correctly."
64
+ local real_dir=$(readlink ${INSTALL_ROOT}/current)
65
+ if [ -e ${real_dir}.old ] ; then
66
+ # remove that .old directory, if needed
67
+ log "removing existing .old version of release"
68
+ rm -rf ${real_dir}.old
69
+ fi
70
+ mv ${real_dir} ${real_dir}.old
71
+ mkdir -p ${real_dir}
72
+ else
73
+ return 0;
74
+ fi
75
+ fi
76
+ return 1;
77
+ }
78
+
79
+ # deletes the PID file for this installation
80
+ function delete_pid(){
81
+ rm -f ${INSTALL_ROOT}/$$.pid 2> /dev/null
82
+ }
83
+
84
+ # creates a PID file for this installation
85
+ function create_pid(){
86
+ trap "delete_pid" EXIT
87
+ echo $$> ${INSTALL_ROOT}/$$.pid
88
+ }
89
+
90
+
91
+ # checks for other PID files and sleeps for a grace period if found
92
+ function wait_for_others(){
93
+ local count=`ls ${INSTALL_ROOT}/*.pid | wc -l`
94
+
95
+ if [ $count -gt 1 ] ; then
96
+ sleep 10
97
+ fi
98
+ }
99
+
100
+ # kills other running installations
101
+ function kill_others(){
102
+ for PID_FILE in $(ls ${INSTALL_ROOT}/*.pid) ; do
103
+ local p=`cat ${PID_FILE}`
104
+ if ! [ $p == $$ ] ; then
105
+ kill -9 $p
106
+ rm -f $PID_FILE 2> /dev/null
107
+ fi
108
+ done
109
+ }
110
+
111
+ # echos metadata file. A function so that we can have it change after we set INSTALL_ROOT
112
+ function fpm_metadata_file(){
113
+ echo "${INSTALL_ROOT}/.install-metadata"
114
+ }
115
+
116
+ # if this package was installed at this location already we will find a metadata file with the details
117
+ # about the installation that we left here. Load from that if available but allow command line args to trump
118
+ function load_environment(){
119
+ local METADATA=$(fpm_metadata_file)
120
+ if [ -r "${METADATA}" ] ; then
121
+ log "Found existing metadata file '${METADATA}'. Loading previous install details. Env vars in current environment will take precedence over saved values."
122
+ local TMP="/tmp/$(basename $0).$$.tmp"
123
+ # save existing environment, load saved environment from previous run from install-metadata and then
124
+ # overlay current environment so that anything set currencly will take precedence
125
+ # but missing values will be loaded from previous runs.
126
+ save_environment "$TMP"
127
+ source "${METADATA}"
128
+ source $TMP
129
+ rm "$TMP"
130
+ fi
131
+ }
132
+
133
+ # write out metadata for future installs
134
+ function save_environment(){
135
+ local METADATA=$1
136
+ echo -n "" > ${METADATA} # empty file
137
+
138
+ # just piping env to a file doesn't quote the variables. This does
139
+ # filter out multiline junk, _, and functions. _ is a readonly variable.
140
+ env | grep -v "^_=" | grep -v "^[^=(]*()=" | egrep "^[^ ]+=" | while read ENVVAR ; do
141
+ local NAME=${ENVVAR%%=*}
142
+ # sed is to preserve variable values with dollars (for escaped variables or $() style command replacement),
143
+ # and command replacement backticks
144
+ # Escaped parens captures backward reference \1 which gets replaced with backslash and \1 to esape them in the saved
145
+ # variable value
146
+ local VALUE=$(eval echo '$'$NAME | sed 's/\([$`]\)/\\\1/g')
147
+ echo "export $NAME=\"$VALUE\"" >> ${METADATA}
148
+ done
149
+
150
+ if [ -n "${OWNER}" ] ; then
151
+ chown ${OWNER} ${METADATA}
152
+ fi
153
+ }
154
+
155
+ function set_install_dir(){
156
+ # if INSTALL_ROOT isn't set by parsed args, use basename of package file with no extension
157
+ DEFAULT_DIR=$(echo $(basename $0) | sed -e 's/\.[^\.]*$//')
158
+ INSTALL_DIR=${INSTALL_ROOT:-$DEFAULT_DIR}
159
+
160
+ DATESTAMP=$(date +%Y%m%d%H%M%S)
161
+ if [ -z "$USE_FLAT_RELEASE_DIRECTORY" ] ; then
162
+ <%= "RELEASE_ID=#{release_id}" if respond_to?(:release_id) %>
163
+ INSTALL_DIR="${RELEASES_DIR}/${RELEASE_ID:-$DATESTAMP}"
164
+ fi
165
+
166
+ mkdir -p "$INSTALL_DIR" || die "Unable to create install directory $INSTALL_DIR"
167
+
168
+ export INSTALL_DIR
169
+
170
+ log "Installing package to '$INSTALL_DIR'"
171
+ }
172
+
173
+ function set_owner(){
174
+ export OWNER=${OWNER:-$USER}
175
+ log "Installing as user $OWNER"
176
+ }
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
+
186
+ function unpack_payload(){
187
+ if [ "$FORCE" == "1" ] || [ ! "$(ls -A $INSTALL_DIR)" ] ; then
188
+ log "Unpacking payload . . ."
189
+ local archive_line=$(grep -a -n -m1 '__ARCHIVE__$' $0 | sed 's/:.*//')
190
+ tail -n +$((archive_line + 1)) $0 | tar -C $INSTALL_DIR -xf - > /dev/null || die "Failed to unpack payload from the end of '$0' into '$INSTALL_DIR'"
191
+ else
192
+ # Files are already here, just move symlinks
193
+ log "Directory already exists and has contents ($INSTALL_DIR). Not unpacking payload."
194
+ fi
195
+ }
196
+
197
+ function run_post_install(){
198
+ local AFTER_INSTALL=$INSTALL_DIR/.fpm/after_install
199
+ if [ -r $AFTER_INSTALL ] ; then
200
+ set_post_install_vars
201
+ chmod +x $AFTER_INSTALL
202
+ log "Running post install script"
203
+ output=$($AFTER_INSTALL 2>&1)
204
+ errorlevel=$?
205
+ log $output
206
+ return $errorlevel
207
+ fi
208
+ return 0
209
+ }
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
+
222
+ function create_symlinks(){
223
+ [ -n "$USE_FLAT_RELEASE_DIRECTORY" ] && return
224
+
225
+ export CURRENT_DIR="$INSTALL_ROOT/current"
226
+ if [ -e "$CURRENT_DIR" ] || [ -h "$CURRENT_DIR" ] ; then
227
+ log "Removing current symlink"
228
+ OLD_CURRENT_TARGET=$(readlink $CURRENT_DIR)
229
+ rm "$CURRENT_DIR"
230
+ fi
231
+ ln -s "$INSTALL_DIR" "$CURRENT_DIR"
232
+
233
+ log "Symlinked '$INSTALL_DIR' to '$CURRENT_DIR'"
234
+ }
235
+
236
+ # in case post install fails we may have to back out switching the symlink to current
237
+ # We can't switch the symlink after because post install may assume that it is in the
238
+ # exact state of being installed (services looking to current for their latest code)
239
+ function revert_symlinks(){
240
+ if [ -n "$OLD_CURRENT_TARGET" ] ; then
241
+ log "Putting current symlink back to '$OLD_CURRENT_TARGET'"
242
+ if [ -e "$CURRENT_DIR" ] ; then
243
+ rm "$CURRENT_DIR"
244
+ fi
245
+ ln -s "$OLD_CURRENT_TARGET" "$CURRENT_DIR"
246
+ fi
247
+ }
248
+
249
+ function clean_out_old_releases(){
250
+ [ -n "$USE_FLAT_RELEASE_DIRECTORY" ] && return
251
+
252
+ if [ -n "$OLD_CURRENT_TARGET" ] ; then
253
+ # exclude old 'current' from deletions
254
+ while [ $(ls -tr "${RELEASES_DIR}" | grep -v ^$(basename "${OLD_CURRENT_TARGET}")$ | wc -l) -gt 2 ] ; do
255
+ OLDEST_RELEASE=$(ls -tr "${RELEASES_DIR}" | grep -v ^$(basename "${OLD_CURRENT_TARGET}")$ | head -1)
256
+ log "Deleting old release '${OLDEST_RELEASE}'"
257
+ rm -rf "${RELEASES_DIR}/${OLDEST_RELEASE}"
258
+ done
259
+ else
260
+ while [ $(ls -tr "${RELEASES_DIR}" | wc -l) -gt 2 ] ; do
261
+ OLDEST_RELEASE=$(ls -tr "${RELEASES_DIR}" | head -1)
262
+ log "Deleting old release '${OLDEST_RELEASE}'"
263
+ rm -rf "${RELEASES_DIR}/${OLDEST_RELEASE}"
264
+ done
265
+ fi
266
+ }
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
+
274
+ function print_usage(){
275
+ echo "Usage: `basename $0` [options]"
276
+ echo "Install this package"
277
+ echo " -i <DIRECTORY> : install_root - an optional directory to install to."
278
+ echo " Default is package file name without file extension"
279
+ echo " -o <USER> : owner - the name of the user that will own the files installed"
280
+ echo " by the package. Defaults to current user"
281
+ echo " -r: disable capistrano style release directories - Default behavior is to create a releases directory inside"
282
+ echo " install_root and unpack contents into a date stamped (or build time id named) directory under the release"
283
+ echo " directory. Then create a 'current' symlink under install_root to the unpacked"
284
+ echo " directory once installation is complete replacing the symlink if it already "
285
+ echo " exists. If this flag is set just install into install_root directly"
286
+ echo " -u: Unpack the package, but do not install and symlink the payload"
287
+ echo " -f: force - Always overwrite existing installations"
288
+ echo " -y: yes - Don't prompt to clobber existing installations"
289
+ echo " -v: verbose - More output on installation"
290
+ echo " -h: help - Display this message"
291
+ }
292
+
293
+ function die () {
294
+ local message=$*
295
+ echo "Error: $message : $!"
296
+ exit 1
297
+ }
298
+
299
+ function log(){
300
+ local message=$*
301
+ if [ -n "$VERBOSE" ] ; then
302
+ echo "$*"
303
+ fi
304
+ }
305
+
306
+ function parse_args() {
307
+ args=`getopt mi:o:rfuyvh $*`
308
+
309
+ if [ $? != 0 ] ; then
310
+ print_usage
311
+ exit 2
312
+ fi
313
+ set -- $args
314
+ for i
315
+ do
316
+ case "$i"
317
+ in
318
+ -m)
319
+ print_package_metadata
320
+ exit 0
321
+ shift;;
322
+ -r)
323
+ USE_FLAT_RELEASE_DIRECTORY=1
324
+ shift;;
325
+ -i)
326
+ shift;
327
+ export INSTALL_ROOT="$1"
328
+ export RELEASES_DIR="${INSTALL_ROOT}/releases"
329
+ shift;;
330
+ -o)
331
+ shift;
332
+ export OWNER="$1"
333
+ shift;;
334
+ -v)
335
+ export VERBOSE=1
336
+ shift;;
337
+ -u)
338
+ UNPACK_ONLY=1
339
+ shift;;
340
+ -f)
341
+ FORCE=1
342
+ shift;;
343
+ -y)
344
+ CONFIRM="y"
345
+ shift;;
346
+ -h)
347
+ print_usage
348
+ exit 0
349
+ shift;;
350
+ --)
351
+ shift; break;;
352
+ esac
353
+ done
354
+ }
355
+
356
+ # parse args first to get install root
357
+ parse_args $*
358
+ # load environment from previous installations so we get defaults from that
359
+ load_environment
360
+ # reparse args so they can override any settings from previous installations if provided on the command line
361
+ parse_args $*
362
+
363
+ main
364
+ save_environment $(fpm_metadata_file)
365
+ exit 0
366
+
367
+ __METADATA__
368
+ <%= package_metadata if respond_to?(:package_metadata) %>
369
+ __ARCHIVE__
@@ -0,0 +1,15 @@
1
+ CLASSES=none
2
+ TZ=PST
3
+ PATH=/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
4
+ BASEDIR=/
5
+ PKG=<%= name %>
6
+ NAME=<%= name %>
7
+ ARCH=<%= architecture %>
8
+ VERSION=<%= version %><%= iteration && "-" + iteration.to_s %>
9
+ CATEGORY=application
10
+ <%# pkginfo(4) says DESC is max 256 characters -%>
11
+ DESC=<%= description.split("\n").first[0..255] or "no description given" %>
12
+ VENDOR=<%= maintainer %>
13
+ <%# Take maintainer of "Foo <bar@baz.com>" and use "bar@baz.com" -%>
14
+ EMAIL=<%= (maintainer[/<.+>/] or maintainer).gsub(/[<>]/, "") %>
15
+
metadata ADDED
@@ -0,0 +1,322 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fpm-aeppert
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.2
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Eppert
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-08-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.7.7
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '2.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.7.7
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: cabin
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: 0.6.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: backports
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.6.2
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: 2.6.2
61
+ - !ruby/object:Gem::Dependency
62
+ name: arr-pm
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 0.0.10
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: 0.0.10
75
+ - !ruby/object:Gem::Dependency
76
+ name: clamp
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: 1.0.0
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: childprocess
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: ffi
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ version: '10'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ~>
129
+ - !ruby/object:Gem::Version
130
+ version: '10'
131
+ - !ruby/object:Gem::Dependency
132
+ name: archive-tar-minitar
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '>='
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: ruby-xz
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: pleaserun
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.0.24
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ~>
171
+ - !ruby/object:Gem::Version
172
+ version: 0.0.24
173
+ - !ruby/object:Gem::Dependency
174
+ name: rspec
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ~>
178
+ - !ruby/object:Gem::Version
179
+ version: 3.0.0
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ~>
185
+ - !ruby/object:Gem::Version
186
+ version: 3.0.0
187
+ - !ruby/object:Gem::Dependency
188
+ name: insist
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ~>
192
+ - !ruby/object:Gem::Version
193
+ version: 1.0.0
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ~>
199
+ - !ruby/object:Gem::Version
200
+ version: 1.0.0
201
+ - !ruby/object:Gem::Dependency
202
+ name: pry
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - '>='
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: stud
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - '>='
227
+ - !ruby/object:Gem::Version
228
+ version: '0'
229
+ description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs,
230
+ solaris packages and more. Win at package management without wasting pointless hours
231
+ debugging bad rpm specs!
232
+ email: aeppert@gmail.com
233
+ executables:
234
+ - fpm
235
+ extensions: []
236
+ extra_rdoc_files: []
237
+ files:
238
+ - lib/fpm/command.rb
239
+ - lib/fpm/errors.rb
240
+ - lib/fpm/namespace.rb
241
+ - lib/fpm/package/apk.rb
242
+ - lib/fpm/package/cpan.rb
243
+ - lib/fpm/package/deb.rb
244
+ - lib/fpm/package/dir.rb
245
+ - lib/fpm/package/empty.rb
246
+ - lib/fpm/package/freebsd.rb
247
+ - lib/fpm/package/gem.rb
248
+ - lib/fpm/package/npm.rb
249
+ - lib/fpm/package/osxpkg.rb
250
+ - lib/fpm/package/p5p.rb
251
+ - lib/fpm/package/pacman.rb
252
+ - lib/fpm/package/pear.rb
253
+ - lib/fpm/package/pkgin.rb
254
+ - lib/fpm/package/pleaserun.rb
255
+ - lib/fpm/package/puppet.rb
256
+ - lib/fpm/package/pyfpm/__init__.py
257
+ - lib/fpm/package/pyfpm/get_metadata.py
258
+ - lib/fpm/package/python.rb
259
+ - lib/fpm/package/rpm.rb
260
+ - lib/fpm/package/sh.rb
261
+ - lib/fpm/package/solaris.rb
262
+ - lib/fpm/package/tar.rb
263
+ - lib/fpm/package/virtualenv.rb
264
+ - lib/fpm/package/zip.rb
265
+ - lib/fpm/package.rb
266
+ - lib/fpm/rake_task.rb
267
+ - lib/fpm/util/tar_writer.rb
268
+ - lib/fpm/util.rb
269
+ - lib/fpm/version.rb
270
+ - lib/fpm.rb
271
+ - bin/fpm
272
+ - templates/deb/changelog.erb
273
+ - templates/deb/ldconfig.sh.erb
274
+ - templates/deb/postinst_upgrade.sh.erb
275
+ - templates/deb/postrm_upgrade.sh.erb
276
+ - templates/deb/preinst_upgrade.sh.erb
277
+ - templates/deb/prerm_upgrade.sh.erb
278
+ - templates/deb.erb
279
+ - templates/osxpkg.erb
280
+ - templates/p5p_metadata.erb
281
+ - templates/pacman/INSTALL.erb
282
+ - templates/pacman.erb
283
+ - templates/pleaserun/generate-cleanup.sh
284
+ - templates/pleaserun/install-path.sh
285
+ - templates/pleaserun/install.sh
286
+ - templates/pleaserun/scripts/after-install.sh
287
+ - templates/pleaserun/scripts/before-remove.sh
288
+ - templates/puppet/package/remove.pp.erb
289
+ - templates/puppet/package.pp.erb
290
+ - templates/rpm/filesystem_list
291
+ - templates/rpm.erb
292
+ - templates/sh.erb
293
+ - templates/solaris.erb
294
+ - LICENSE
295
+ - CONTRIBUTORS
296
+ - CHANGELIST
297
+ homepage: https://github.com/aeppert/fpm
298
+ licenses:
299
+ - MIT-like
300
+ metadata: {}
301
+ post_install_message:
302
+ rdoc_options: []
303
+ require_paths:
304
+ - lib
305
+ - lib
306
+ required_ruby_version: !ruby/object:Gem::Requirement
307
+ requirements:
308
+ - - '>='
309
+ - !ruby/object:Gem::Version
310
+ version: '0'
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
312
+ requirements:
313
+ - - '>='
314
+ - !ruby/object:Gem::Version
315
+ version: '0'
316
+ requirements: []
317
+ rubyforge_project:
318
+ rubygems_version: 2.0.14.1
319
+ signing_key:
320
+ specification_version: 4
321
+ summary: fpm - package building and mangling
322
+ test_files: []