#!/usr/bin/env perl

# $Id: configure,v 0.9.0.1 2001/01/17 20:26:02 genemagnier Exp $

# replace the following variables:
# CBB_LIBRARY (/usr/lib/cbb) (ARGV[1]);

$bindir = "/usr/local/bin";
$libdir = "/usr/local/lib/cbb";

for ($i = 0; $i < @ARGV; $i++) {
    if ($ARGV[$i] eq "--bindir") {
	$i ++;
	$bindir = $ARGV[$i];
	if ("$bindir" eq "") { 
	    print STDERR "error in configure: --bindir\n";
	    exit 1;
	}
	next;
    }
    if ($ARGV[$i] eq "--libdir") {
	$i ++;
	$libdir = $ARGV[$i];
	if ("$libdir" eq "") { 
	    print STDERR "error in configure: --libdir\n";
	    exit 1;
	}
	next; 
    }
    print STDERR "unknown option $ARGV[$i]\n";
    exit 1;
}

@list = ("cbb.in", 
	 "cbbdb.in", 
	 "Makefile.in",
	 "graphs/cat-col.pl.in", 
	 "graphs/cat-pie.pl.in", 
	 "graphs/cat2-col.pl.in", 
	 "graphs/desc-pie.pl.in", 
	 "graphs/txn-list.pl.in", 
	 "reports/ave-by-cat.pl.in",
	 "reports/by-cat.pl.in",
	 "reports/by-payee.pl.in",
	 "reports/miss-check.pl.in",
	 "reports/shrt-by-cat.pl.in",
	 "reports/txn-list.pl.in",
	 "reports/uncleared-txn.pl.in",
	 );

foreach $key (@list) {
    substitute ($key, "CBB_LIBRARY", $libdir);
}

# ok, i agree, this is stupid...
system "rm -f Makefile.tmp.in Makefile.tmp";
system "mv Makefile Makefile.tmp.in";
substitute ("Makefile.tmp.in", "CBB_BINDIR", $bindir);
system "mv Makefile.tmp Makefile";

exit 0;

sub substitute { 
    $file = $_[0];
    $name = $_[1];
    $value = $_[2];

    ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, 
     $ctime, $blksize, $blocks) = stat($file);

    open (FILE, "$file");
    @lines = <FILE>;
    close (FILE);
    
    foreach (@lines) {
	s{$name}{$value}
    }
    
    $file =~ s/.in$//;
    open (FILE, ">$file");
    foreach (@lines) {
	print FILE $_;
    }
    close (FILE);
    
    chown($uid, $gid, $file);
    chmod($mode, $file);

}
