| 12345678910111213141516171819202122232425262728293031 |
- package Dpkg::Compression;
- use strict;
- use warnings;
- use base qw(Exporter);
- our @EXPORT = qw(@comp_supported %comp_supported %comp_ext $comp_regex
- %comp_prog %comp_decomp_prog
- get_compression_from_filename);
- our @comp_supported = qw(gzip bzip2 lzma xz);
- our %comp_supported = map { $_ => 1 } @comp_supported;
- our %comp_ext = (gzip => 'gz', bzip2 => 'bz2', lzma => 'lzma', xz => 'xz');
- our $comp_regex = '(?:gz|bz2|lzma|xz)';
- our %comp_prog = (gzip => 'gzip', bzip2 => 'bzip2', lzma => 'lzma',
- xz => 'xz');
- our %comp_decomp_prog = (gzip => 'gunzip', bzip2 => 'bunzip2', lzma => 'unlzma',
- xz => 'unxz');
- sub get_compression_from_filename {
- my $filename = shift;
- foreach my $comp (@comp_supported) {
- if ($filename =~ /^(.*)\.\Q$comp_ext{$comp}\E$/) {
- return $comp;
- }
- }
- return undef;
- }
- 1;
|