#!/usr/bin/perl

$II2BUILDSTAMP = $ENV{"II2BUILDSTAMP"};
$II2PKGDIR = $ENV{"II2PKGDIR"};
$II2INSTALLDIR = $ENV{"II2INSTALLDIR"};
$II2RESOURCES = $ENV{"II2RESOURCES"};
$II2DOSERVER = $ENV{"II2DOSERVER"};

if (${II2BUILDSTAMP} < 1160910526) {
    warn "### You need at least i-Installer 2.83 for this package. Bailing out...\n";
    exit 1;
}

$PROGNAME = `"${II2RESOURCES}/basename" "$0"`;
chomp( $PROGNAME);

print "### ${PROGNAME}: Started...\n";

my $arch = `uname -p`; chomp $arch;

require "${II2PKGDIR}/texpkgs.sharedscript.pm";

checkPrerequisites( "ConTeXt");

print "### ${PROGNAME}: Preparing TeX for ConTeXt selection...\n";

# Set that contains the set selected during any previous selector phase. This is received
# from i-Installer:
my %set = getSetInfo(); # sets %set

my $displayString;
my @keys = sort keys %set;
if (@keys == 1) {
    print "### ${PROGNAME}: Only one set available. Skipping selection, auto-choosing stable.\n";
    `"${II2RESOURCES}/doalerter" -s "${II2DOSERVER}" -V -t SetSelectorSets -P "contextstable"`;
}
else {
    foreach my $knownsetid (@keys) {
	if ($set{$knownsetid}{'available'} eq 'YES') {
	    # $displayString .= ($set{$knownsetid}{'selected'} eq 'YES' ? '+' : '-');
	    $displayString .= "$set{$knownsetid}{'name'}|";
	}
    }
    chop( $displayString) if $displayString =~ /\|$/; 

    if ($displayString eq '') {
	warn "### ${PROGNAME}: No set is complete for install. Please copy the package to a writable location, unlock it and turn network access on in i-Installer Preferences. Bailing out...\n";
	exit 1;
    }

    REDO:
    $doresult = `"${II2RESOURCES}/doalerter" -s "${II2DOSERVER}" -V -t Choice -T "Select Package Parts" -C "$displayString" -I "Please select which parts of the package you want to install. Clicking Cancel will make this stage fail and abort the install procedure." -1 "Select" -3 "Cancel"`;
    chomp( $doresult);

    # warn $doresult;

    if (($? >> 8) == 0) {
	$displayString = '';
	foreach my $knownsetid (@keys) {
	    # warn "**** Checking \"$knownsetid ($set{$knownsetid}{'name'})\" against \"$doresult\"";
	    if ($set{$knownsetid}{'name'} eq $doresult) {
		$displayString .= "$knownsetid|";
	    }
	}
	chop( $displayString) if $displayString =~ /\|$/; 
	# warn "**** $displayString";
	`"${II2RESOURCES}/doalerter" -s "${II2DOSERVER}" -V -t SetSelectorSets -P "$displayString"`;
    }
    elsif (($? >> 8) == 1) {
	# Cancel.
	print "### ${PROGNAME}: none selected. Bailing out...\n";
	exit( 1);
    }
}

warn "### ${PROGNAME}: Finished...\n";
print "### ${PROGNAME}: Finished...\n";

exit( 0);

# $Id: context-update.selector 106 2006-10-31 21:00:31Z gctwnl $
