#!/usr/bin/perl
#
# SYNTAX:
my $usage = "installdb -u user -p password -h hostname -d database [-P port]";
#
# DESCRIPTION:
#	Runs installation script in this directory
#	Options as mysql's for authentication
#
# COPYRIGHT:
#	Copyright (C) 2005 Altinity Limited
#	Copyright is freely given to Ethan Galstad if included in the NDOUtils distribution
#
# LICENCE:
#	GNU GPLv2
#
# Last Updated: 03/21/2007
#


use strict;
use FindBin qw($Bin);
use Getopt::Std;
use DBI;

sub usage {
	print $usage,$/,"\t",$_[0],$/;
	exit 1;
}

my $opts = {};
getopts("u:p:h:d:P:", $opts) or usage "Bad options";

my $database = $opts->{d} || usage "Must specify a database";
my $hostname = $opts->{h} || "localhost";
my $username = $opts->{u} || usage "Must specify a username";
my $password = $opts->{p};
my $port = $opts->{P};
usage "Must specify a password" unless defined $password;	# Could be blank

# Connect to database
my $dbh = DBI->connect("DBI:mysql:$database;$hostname:$port",
		$username, $password,
		{ RaiseError => 1 },
		)
		or die "Cannot connect to database";

# Current database version
my $thisversion="2.0.1";

# Create version table if it doesn't exist
eval { $dbh->do("SELECT * FROM nagios_dbversion LIMIT 1") };
if ($@) {

	my $file="mysql.sql";
	if (-e $file){
	    print "** Creating tables for version $thisversion",$/;
	    print "     Using $file for installation...",$/;
	    my $p = "-p$password" if $password;	# Not required if password is blank
	    system("mysql -u $username $p -D$database -h$hostname < $file") == 0 or die "Installation from $file failed";
	}
	else{
	    die "No installation script found!";
	}

	print "** Updating table nagios_dbversion",$/;
	$dbh->do("INSERT nagios_dbversion SET name='ndoutils', version='$thisversion';");

	print "Done!",$/;
}
else {
    print "*** Database already installed",$/;
    exit 0;
};

