###################################################################################################
# Copyright 2013 by Marcel Greter
# This file is part of Webmerge (GPL3)
###################################################################################################
package OCBNET::Webmerge::Optimize::GZ;
###################################################################################################
use base qw(OCBNET::Webmerge::Optimize::ANY);
###################################################################################################

use strict;
use warnings;

###################################################################################################

BEGIN
{
	# enable optimizer executables if not explicitly disabled
	$ENV{'WEBMERGE_ADVGZ'} = 1 unless exists $ENV{'WEBMERGE_ADVGZ'};
}

###################################################################################################
use OCBNET::Webmerge qw(options);
###################################################################################################

options('optimize-gz', 'gz!', undef);

###################################################################################################
use OCBNET::Webmerge qw(range);
###################################################################################################

sub advgz
{
	# get the optimization level (1 to 9)
	my $lvl = range($_[0]->option('level'), 1, 5, 4);
	# return commandline for process
	return sprintf("-z -%d --quiet \"%s\"", $lvl, $_[0]->path);
}

###################################################################################################
use OCBNET::Webmerge qw(optimizers);
###################################################################################################

optimizers('gzopt', 'advzip', \ &advgz, 2) if $ENV{'WEBMERGE_ADVGZ'};

###################################################################################################
###################################################################################################
1;
