#!/usr/bin/perl

#   $Header: /cvsroot/systeminstaller/systeminstaller/bin/mkpkgcache,v 1.5 2003/04/11 20:44:28 mchasal Exp $

#   Copyright (c) 2001 International Business Machines

#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.

#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

use strict;
use vars qw($config $VERSION);
$VERSION = sprintf("%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/);
use lib "/usr/lib/systeminstaller";
use SystemInstaller::Env;
use SystemInstaller::PackageBest;
use SystemInstaller::Log qw(start_verbose stop_verbose verbose);
use Carp;
use AppConfig qw(:argcount);

$config->define(
        Help=>{ ARGCOUNT=> ARGCOUNT_NONE,
                ALIAS => "h"},
        path=>{ ARGCOUNT=> ARGCOUNT_ONE},
        force=> {ARGCOUNT=> ARGCOUNT_NONE},
        version=>{ARGCOUNT=> ARGCOUNT_NONE},
);

unless ($config->getopt()){
	&usage;
	exit 1;
}

if ($config->Help){
	&usage;
	exit 0;
}

if ($config->version){
        &print_version($0,$VERSION);
        exit 0;
}

unless (&check_args) {
	&usage;
	exit 1;
}

my $path=$config->path;


&cache_gen($config->path,$config->force);

sub check_args {

	# Get verbose option
	if ($config->verbose){
		start_verbose;
	}
	# Default to list
	&verbose("Checking arguments.");
	unless ($config->path){
		carp("--path is required.");
		return 0;
	}
	return 1;

}# check_args

sub usage {
    my $progname = $0;
    if ($progname =~ m/(.+\/)(\w+)/) {
	$progname = $2;
    }
    print <<USAGE;
usage: $progname <options>

  options
    --path <directory>      the directory that contains the rpms.
    --force                 Regenerate the file regardless of its current state.
    -v, --verbose           massive verbose output


USAGE
} #usage

__END__

=head1 NAME

mkpkgcache - Command shell to create an rpm cache file.

=head1 SYNOPSIS

  mkpkgcache --path /tftpboot/rpm

=head1 DESCRIPTION

The mkpkgcache command is used to create an rpm cache
file for use during image building.

=head2 Syntax

mkpkgcache [options]

=head2 Options

Recognized options include:

=over 4

=item --path <directory>

The directory that contains the rpms. The cache file 
will also be written to this directory.

=item --force

Regenerate the entire file without checking its current state.

=item -v, --verbose

Lots of trace and debug output.

=back

=head1 NOTES

=head1 AUTHOR

Michael Chase-Salerno, mchasal@users.sf.net

=head1 SEE ALSO

perl(1),  mksiimage(1).

=cut
