# This is part of ypp-sc-tools, a set of third-party tools for assisting
# players of Yohoho Puzzle Pirates.
#
# Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#
# Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
# are used without permission.  This program is not endorsed or
# sponsored by Three Rings.

# This package is used by the Mason scripts in yarrg/web/.
# We look for a symlink DATA to the actual data to use, so that
# the data uploader and website displayer can use different code.

package CommodsWeb;

use strict;
use warnings;

use DBI;
use POSIX;

use Commods;
use CommodsDatabase;

our $self_url;
our $base_url;

BEGIN {
    use Exporter ();
    our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
    $VERSION     = 1.00;
    @ISA         = qw(Exporter);
    @EXPORT      = qw(&dbw_connect &ocean_list);
    %EXPORT_TAGS = ( );

    @EXPORT_OK   = qw();
}

our $datadir='.';

for my $dir (@INC) {
    if ($dir =~ m/\.perl-lib$/) {
	$datadir= "$dir/DATA";
	last;
    }
}

my @ocean_list;

sub ocean_list () {
    if (!@ocean_list) {
	my $fn= "$datadir/master-info.txt";
	my $f= new IO::File $fn or die $!;
	my @r;
	while (<$f>) {
	    next unless m/^ocean\s+(\S.*\S)\s*$/;
	    push @r, $1;
	}
	$f->error and die $!;
	close $fn;
	@ocean_list= @r;
    }
    return @ocean_list;
}

sub dbw_connect ($) {
    my ($ocean) = @_;
    die "unknown ocean $ocean ?"
	unless grep { $_ eq $ocean } ocean_list();
    return dbr_connect($datadir, $ocean);
}

1;
