: # use perl
eval 'exec perl -S $0 "$@"'
if 0;

die "Usage: dbconcat_event database database [ database ...] destination_database\n" if ( @ARGV < 3 )  ;
    
@TABLES = ( "arrival", "event", "origin", "origerr", "assoc" ) ; 
@IDS = ( "arid", "evid", "orid" ) ; 
$TMPDIR = "/tmp/concat$$" ; 

$NEW = pop(@ARGV) ; 
if ( -d "$NEW" ) { 
    die "must specify new database name (not just directory).\n" ; 
}

$opt_v = 0 ;

mkdir ($TMPDIR, 0775) ;
$OLD = $ENV{"PWD"} ; 

foreach $table ( @TABLES )
    {
    if ( -f "$NEW.$table" ) { $exist = 1 } 
    }
if ( $exist ) 
    {
    print STDERR "Will destroy database $NEW -- ok? " ; 
    $reply = <STDIN> ;
    if ( $reply !~ /y|yes|ok/ ) 
	{
	die "Please choose a new output database name." ;
	}
    }

foreach $db ( @ARGV )  
    {
    $dbname = $db ;
    $dbname =~ s".*/"" ; 
    foreach $table ( @TABLES )
	{
	print STDERR "copying $db.$table\n" ;
	$cmd =  "cp $db.$table $TMPDIR; chmod +w $TMPDIR/$dbname.$table" ; 
	if ( $opt_v ) { print STDERR "$cmd\n" ; } 
	system ( $cmd ) ; 
	}

    print STDERR "Renumbering ids in copy of $db .." ;
    $db = "$TMPDIR/$dbname" ;

    foreach $id ( @IDS ) 
	{
	eval ( "\$next_id = `dbnextid $NEW $id`" ) ; 
	print STDERR "\tstarting $id in $NEW with $next_id\n" ; 
	$cmd = "dbfixids $db $id $next_id" ; 
	if ( $opt_v ) { print STDERR "$cmd\n" ; } 
	system ( $cmd ) ; 
	}

    foreach $table ( @TABLES )
	{
	print STDERR "$table .." ;
	$cmd = "cat $db.$table >> $NEW.$table" ; 
	if ( $opt_v ) { print STDERR "$cmd\n" ; } 
	system ( $cmd ) ; 
	}

    unlink "$NEW.lastid" ; 
    print STDERR "\n" ; 
    }

unlink "$OLD/$NEW.lastid" ; 
system ( "rm -rf $TMPDIR" ) ; 


# $Id: dbconcat_event.sh,v 1.2 1998/02/16 20:08:47 danq Exp $ 
