Check-in [8e09850d3e]
Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Use ::Dir so we get ruby core's Dir, not FPM::Package::Dir |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
8e09850d3e58617c7afb3dc2aca38bb2 |
| User & Date: | jls@semicomplete.com 2014-02-10 06:20:39 |
Context
|
2014-02-10
| ||
| 06:21 | Factor 'does this program exist?' into a separate method The tests already reimplement "program_in_path?" so it makes sense to stop duplicating. check-in: ed1cb17fd3 user: jls@semicomplete.com tags: trunk | |
| 06:20 | Use ::Dir so we get ruby core's Dir, not FPM::Package::Dir check-in: 8e09850d3e user: jls@semicomplete.com tags: trunk | |
|
2014-02-05
| ||
| 06:53 | Use /bin/sh as the default if $SHELL isn't set in the environment. Fixes #607 check-in: f11353d1cc user: jls@semicomplete.com tags: trunk | |
Changes
Added lib/fpm/package/zip.rb.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
require "backports" # gem backports
require "fpm/package"
require "fpm/util"
require "fileutils"
require "fpm/package/dir"
# Use a zip as a package.
#
# This provides no metadata. Both input and output are supported.
class FPM::Package::Zip < FPM::Package
# Input a zipfile.
def input(input_path)
# use part of the filename as the package name
self.name = File.extname(input_path)[1..-1]
realpath = Pathname.new(input_path).realpath.to_s
::Dir.chdir(build_path) do
safesystem("unzip", realpath)
end
# use dir to set stuff up properly, mainly so I don't have to reimplement
# the chdir/prefix stuff special for zip.
dir = convert(FPM::Package::Dir)
if attributes[:chdir]
dir.attributes[:chdir] = File.join(build_path, attributes[:chdir])
else
dir.attributes[:chdir] = build_path
end
cleanup_staging
# Tell 'dir' to input "." and chdir/prefix will help it figure out the
# rest.
dir.input(".")
@staging_path = dir.staging_path
dir.cleanup_build
end # def input
# Output a tarball.
#
# If the output path ends predictably (like in .tar.gz) it will try to obey
# the compression type.
def output(output_path)
output_check(output_path)
files = Find.find(staging_path).to_a
safesystem("zip", output_path, *files)
end # def output
# Generate the proper tar flags based on the path name.
def tar_compression_flag(path)
case path
when /\.tar\.bz2$/
return "-j"
when /\.tar\.gz$|\.tgz$/
return "-z"
when /\.tar\.xz$/
return "-J"
else
return nil
end
end # def tar_compression_flag
end # class FPM::Package::Tar
|