#!/usr/bin/perl

# limit  kmc update if definitive kmc licence
# run by kwartz-autoupdate -i

# note
# to run downgrade manually
# /usr/sbin/kwartz-autoupdate -va install kwartz-mdm kwartz-mdm-core --force-yes

use strict;
use v5.10;

use Kwartz::Key;

my $apt_dir='/etc/apt/preferences.d/';
die "required $apt_dir missing..." unless (-d $apt_dir);

my $filename="$apt_dir/pin_kmc_version";

my $kwartzkey = Kwartz::Key->default();


# some basic checks
say "kwartzkey not valid" and exit unless $kwartzkey and $kwartzkey->is_valid;
say "no licence found" and exit unless $kwartzkey->licence; # to be sure...

# read pinning info from kwartzkey 
# protect with if ($kwartzkey->can('tag'))?
my $pin_kmc_version = eval {$kwartzkey->tag('pin_kmc_version')};

# by default no  pinning
unlink $filename;
if ($pin_kmc_version) {
	say "pin kmc version '$pin_kmc_version' ...";
	build_apt_prefs($pin_kmc_version);
} else {
	say "can update kmc";
}

# build apt preferences files to pin kmc package
sub build_apt_prefs {
	my $version=shift;
	
	unless ($version) {
		unlink $filename;
		return;
	}
	open(my $fh, '>', $filename)  or 
		die "can not open $filename: $!" ;
	print $fh <<EOF;
Package: kwartz-mdm-core kwartz-mdm
Pin: version $version
Pin-Priority: 1001	

EOF
	close $fh;
}

