#! /usr/bin/perl

use Foomatic::Defaults;

die "No \$libdir defined in Foomatic::Defaults!?"
    unless $libdir;

use Getopt::Std;
getopts("hk:");
help() if $opt_h;

if (! -d $opt_k) {
    warn "No such directory `$opt_k'\n";
    help();
}


# OK, now sanity check and import
my $dir = $opt_k;
if (!(-d "$dir/printer" or -d "$dir/driver" or -d "$dir/opt")) {
    die "No printer, driver, and/or opt directory in $dir; invalid kit?\n";
}

die "That's the library directory!\n"
    if ($dir =~ m"$libdir/db/source/?");

open FILES, "find $dir -type f -print |" 
    or die "Cannot run find!?";
while (<FILES>) {
    chomp;
    die "Non-xml file $_!\n"
	if (! m/\.xml$/);
}
close FILES or die "Cannot close pipe from find!";

# OK, we think it's valid now.

die "Foomatic library directory '$libdir/db' is not writable!\n"
    if (! (-d "$libdir/db" and -w "$libdir/db"));

my $retval = system("( cd $dir ; tar cf - . ) | tar xvCf $libdir/db/source - | tee $libdir/kitload.log");
$retval = $retval / 256;
if ($retval) {
    die "Error copying files to $libdir/db/source: $?";
}

sub help {
    print STDERR "Usage: foomatic-kitload -k kit-dir\n";
    exit(0);
}


