fpm-itchio 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.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELIST +629 -0
  3. data/CONTRIBUTORS +26 -0
  4. data/LICENSE +21 -0
  5. data/bin/fpm +8 -0
  6. data/lib/fpm.rb +18 -0
  7. data/lib/fpm/command.rb +642 -0
  8. data/lib/fpm/errors.rb +4 -0
  9. data/lib/fpm/namespace.rb +4 -0
  10. data/lib/fpm/package.rb +524 -0
  11. data/lib/fpm/package/cpan.rb +378 -0
  12. data/lib/fpm/package/deb.rb +887 -0
  13. data/lib/fpm/package/dir.rb +207 -0
  14. data/lib/fpm/package/empty.rb +13 -0
  15. data/lib/fpm/package/gem.rb +224 -0
  16. data/lib/fpm/package/npm.rb +120 -0
  17. data/lib/fpm/package/osxpkg.rb +164 -0
  18. data/lib/fpm/package/p5p.rb +124 -0
  19. data/lib/fpm/package/pacman.rb +397 -0
  20. data/lib/fpm/package/pear.rb +117 -0
  21. data/lib/fpm/package/pkgin.rb +35 -0
  22. data/lib/fpm/package/puppet.rb +120 -0
  23. data/lib/fpm/package/pyfpm/__init__.py +1 -0
  24. data/lib/fpm/package/pyfpm/get_metadata.py +104 -0
  25. data/lib/fpm/package/python.rb +317 -0
  26. data/lib/fpm/package/rpm.rb +583 -0
  27. data/lib/fpm/package/sh.rb +69 -0
  28. data/lib/fpm/package/solaris.rb +95 -0
  29. data/lib/fpm/package/tar.rb +74 -0
  30. data/lib/fpm/package/virtualenv.rb +145 -0
  31. data/lib/fpm/package/zip.rb +63 -0
  32. data/lib/fpm/rake_task.rb +59 -0
  33. data/lib/fpm/util.rb +253 -0
  34. data/lib/fpm/version.rb +3 -0
  35. data/templates/deb.erb +52 -0
  36. data/templates/deb/changelog.erb +5 -0
  37. data/templates/deb/ldconfig.sh.erb +13 -0
  38. data/templates/deb/postinst_upgrade.sh.erb +62 -0
  39. data/templates/deb/postrm_upgrade.sh.erb +46 -0
  40. data/templates/deb/preinst_upgrade.sh.erb +41 -0
  41. data/templates/deb/prerm_upgrade.sh.erb +39 -0
  42. data/templates/osxpkg.erb +11 -0
  43. data/templates/p5p_metadata.erb +12 -0
  44. data/templates/pacman.erb +47 -0
  45. data/templates/pacman/INSTALL.erb +41 -0
  46. data/templates/puppet/package.pp.erb +34 -0
  47. data/templates/puppet/package/remove.pp.erb +13 -0
  48. data/templates/rpm.erb +261 -0
  49. data/templates/rpm/filesystem_list +14514 -0
  50. data/templates/sh.erb +367 -0
  51. data/templates/solaris.erb +15 -0
  52. metadata +265 -0
@@ -0,0 +1,367 @@
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
+ <% if respond_to?(:package_metadata)%>
213
+ <% package_metadata_hash = JSON.parse(package_metadata)%>
214
+ <% package_metadata_hash.each do |k,v| %>
215
+ <%= "export #{k.upcase}='#{v}'; "%>
216
+ <% end %>
217
+ <% end %>
218
+ }
219
+
220
+ function create_symlinks(){
221
+ [ -n "$USE_FLAT_RELEASE_DIRECTORY" ] && return
222
+
223
+ export CURRENT_DIR="$INSTALL_ROOT/current"
224
+ if [ -e "$CURRENT_DIR" ] || [ -h "$CURRENT_DIR" ] ; then
225
+ log "Removing current symlink"
226
+ OLD_CURRENT_TARGET=$(readlink $CURRENT_DIR)
227
+ rm "$CURRENT_DIR"
228
+ fi
229
+ ln -s "$INSTALL_DIR" "$CURRENT_DIR"
230
+
231
+ log "Symlinked '$INSTALL_DIR' to '$CURRENT_DIR'"
232
+ }
233
+
234
+ # in case post install fails we may have to back out switching the symlink to current
235
+ # We can't switch the symlink after because post install may assume that it is in the
236
+ # exact state of being installed (services looking to current for their latest code)
237
+ function revert_symlinks(){
238
+ if [ -n "$OLD_CURRENT_TARGET" ] ; then
239
+ log "Putting current symlink back to '$OLD_CURRENT_TARGET'"
240
+ if [ -e "$CURRENT_DIR" ] ; then
241
+ rm "$CURRENT_DIR"
242
+ fi
243
+ ln -s "$OLD_CURRENT_TARGET" "$CURRENT_DIR"
244
+ fi
245
+ }
246
+
247
+ function clean_out_old_releases(){
248
+ [ -n "$USE_FLAT_RELEASE_DIRECTORY" ] && return
249
+
250
+ if [ -n "$OLD_CURRENT_TARGET" ] ; then
251
+ # exclude old 'current' from deletions
252
+ while [ $(ls -tr "${RELEASES_DIR}" | grep -v ^$(basename "${OLD_CURRENT_TARGET}")$ | wc -l) -gt 2 ] ; do
253
+ OLDEST_RELEASE=$(ls -tr "${RELEASES_DIR}" | grep -v ^$(basename "${OLD_CURRENT_TARGET}")$ | head -1)
254
+ log "Deleting old release '${OLDEST_RELEASE}'"
255
+ rm -rf "${RELEASES_DIR}/${OLDEST_RELEASE}"
256
+ done
257
+ else
258
+ while [ $(ls -tr "${RELEASES_DIR}" | wc -l) -gt 2 ] ; do
259
+ OLDEST_RELEASE=$(ls -tr "${RELEASES_DIR}" | head -1)
260
+ log "Deleting old release '${OLDEST_RELEASE}'"
261
+ rm -rf "${RELEASES_DIR}/${OLDEST_RELEASE}"
262
+ done
263
+ fi
264
+ }
265
+
266
+ function print_package_metadata(){
267
+ local metadata_line=$(grep -a -n -m1 '__METADATA__$' $0 | sed 's/:.*//')
268
+ local archive_line=$(grep -a -n -m1 '__ARCHIVE__$' $0 | sed 's/:.*//')
269
+ sed -n "$((metadata_line + 1)),$((archive_line - 1)) p" $0
270
+ }
271
+
272
+ function print_usage(){
273
+ echo "Usage: `basename $0` [options]"
274
+ echo "Install this package"
275
+ echo " -i <DIRECTORY> : install_root - an optional directory to install to."
276
+ echo " Default is package file name without file extension"
277
+ echo " -o <USER> : owner - the name of the user that will own the files installed"
278
+ echo " by the package. Defaults to current user"
279
+ echo " -r: disable capistrano style release directories - Default behavior is to create a releases directory inside"
280
+ echo " install_root and unpack contents into a date stamped (or build time id named) directory under the release"
281
+ echo " directory. Then create a 'current' symlink under install_root to the unpacked"
282
+ echo " directory once installation is complete replacing the symlink if it already "
283
+ echo " exists. If this flag is set just install into install_root directly"
284
+ echo " -u: Unpack the package, but do not install and symlink the payload"
285
+ echo " -f: force - Always overwrite existing installations"
286
+ echo " -y: yes - Don't prompt to clobber existing installations"
287
+ echo " -v: verbose - More output on installation"
288
+ echo " -h: help - Display this message"
289
+ }
290
+
291
+ function die () {
292
+ local message=$*
293
+ echo "Error: $message : $!"
294
+ exit 1
295
+ }
296
+
297
+ function log(){
298
+ local message=$*
299
+ if [ -n "$VERBOSE" ] ; then
300
+ echo "$*"
301
+ fi
302
+ }
303
+
304
+ function parse_args() {
305
+ args=`getopt mi:o:rfuyvh $*`
306
+
307
+ if [ $? != 0 ] ; then
308
+ print_usage
309
+ exit 2
310
+ fi
311
+ set -- $args
312
+ for i
313
+ do
314
+ case "$i"
315
+ in
316
+ -m)
317
+ print_package_metadata
318
+ exit 0
319
+ shift;;
320
+ -r)
321
+ USE_FLAT_RELEASE_DIRECTORY=1
322
+ shift;;
323
+ -i)
324
+ shift;
325
+ export INSTALL_ROOT="$1"
326
+ export RELEASES_DIR="${INSTALL_ROOT}/releases"
327
+ shift;;
328
+ -o)
329
+ shift;
330
+ export OWNER="$1"
331
+ shift;;
332
+ -v)
333
+ export VERBOSE=1
334
+ shift;;
335
+ -u)
336
+ UNPACK_ONLY=1
337
+ shift;;
338
+ -f)
339
+ FORCE=1
340
+ shift;;
341
+ -y)
342
+ CONFIRM="y"
343
+ shift;;
344
+ -h)
345
+ print_usage
346
+ exit 0
347
+ shift;;
348
+ --)
349
+ shift; break;;
350
+ esac
351
+ done
352
+ }
353
+
354
+ # parse args first to get install root
355
+ parse_args $*
356
+ # load environment from previous installations so we get defaults from that
357
+ load_environment
358
+ # reparse args so they can override any settings from previous installations if provided on the command line
359
+ parse_args $*
360
+
361
+ main
362
+ save_environment $(fpm_metadata_file)
363
+ exit 0
364
+
365
+ __METADATA__
366
+ <%= package_metadata if respond_to?(:package_metadata) %>
367
+ __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,265 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fpm-itchio
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Jordan Sissel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-12-15 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
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.7.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: cabin
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.6.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: backports
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.6.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 2.6.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: arr-pm
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.0.10
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.0.10
69
+ - !ruby/object:Gem::Dependency
70
+ name: clamp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.6'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: childprocess
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ffi
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
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: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 3.0.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 3.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: insist
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 1.0.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 1.0.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: stud
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ description: Convert directories, rpms, python eggs, rubygems, and more to rpms, debs,
182
+ solaris packages and more. Win at package management without wasting pointless hours
183
+ debugging bad rpm specs!
184
+ email: jls@semicomplete.com
185
+ executables:
186
+ - fpm
187
+ extensions: []
188
+ extra_rdoc_files: []
189
+ files:
190
+ - CHANGELIST
191
+ - CONTRIBUTORS
192
+ - LICENSE
193
+ - bin/fpm
194
+ - lib/fpm.rb
195
+ - lib/fpm/command.rb
196
+ - lib/fpm/errors.rb
197
+ - lib/fpm/namespace.rb
198
+ - lib/fpm/package.rb
199
+ - lib/fpm/package/cpan.rb
200
+ - lib/fpm/package/deb.rb
201
+ - lib/fpm/package/dir.rb
202
+ - lib/fpm/package/empty.rb
203
+ - lib/fpm/package/gem.rb
204
+ - lib/fpm/package/npm.rb
205
+ - lib/fpm/package/osxpkg.rb
206
+ - lib/fpm/package/p5p.rb
207
+ - lib/fpm/package/pacman.rb
208
+ - lib/fpm/package/pear.rb
209
+ - lib/fpm/package/pkgin.rb
210
+ - lib/fpm/package/puppet.rb
211
+ - lib/fpm/package/pyfpm/__init__.py
212
+ - lib/fpm/package/pyfpm/get_metadata.py
213
+ - lib/fpm/package/python.rb
214
+ - lib/fpm/package/rpm.rb
215
+ - lib/fpm/package/sh.rb
216
+ - lib/fpm/package/solaris.rb
217
+ - lib/fpm/package/tar.rb
218
+ - lib/fpm/package/virtualenv.rb
219
+ - lib/fpm/package/zip.rb
220
+ - lib/fpm/rake_task.rb
221
+ - lib/fpm/util.rb
222
+ - lib/fpm/version.rb
223
+ - templates/deb.erb
224
+ - templates/deb/changelog.erb
225
+ - templates/deb/ldconfig.sh.erb
226
+ - templates/deb/postinst_upgrade.sh.erb
227
+ - templates/deb/postrm_upgrade.sh.erb
228
+ - templates/deb/preinst_upgrade.sh.erb
229
+ - templates/deb/prerm_upgrade.sh.erb
230
+ - templates/osxpkg.erb
231
+ - templates/p5p_metadata.erb
232
+ - templates/pacman.erb
233
+ - templates/pacman/INSTALL.erb
234
+ - templates/puppet/package.pp.erb
235
+ - templates/puppet/package/remove.pp.erb
236
+ - templates/rpm.erb
237
+ - templates/rpm/filesystem_list
238
+ - templates/sh.erb
239
+ - templates/solaris.erb
240
+ homepage: https://github.com/jordansissel/fpm
241
+ licenses:
242
+ - MIT-like
243
+ metadata: {}
244
+ post_install_message:
245
+ rdoc_options: []
246
+ require_paths:
247
+ - lib
248
+ - lib
249
+ required_ruby_version: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ required_rubygems_version: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '0'
259
+ requirements: []
260
+ rubyforge_project:
261
+ rubygems_version: 2.2.2
262
+ signing_key:
263
+ specification_version: 4
264
+ summary: fpm - package building and mangling
265
+ test_files: []