#!/usr/bin/env perl

# $Id: dumpGrepIndex,v 1.6 2005/04/13 00:39:06 genbank Exp $

use Getopt::Long;
use warnings;
use strict;
use FindBin;
use lib "$FindBin::Bin/../lib";
use gbCommon;

# Option variable names:
use vars qw/
    $opt_help
    $opt_debug
    /;

sub usage {
  my ($status) = @_;
  print STDERR "
usage: $0 baseDir db1 [db2 ...]

Dumps out tab-separated files with index and name from gbCdnaInfo-related
tables to be searched by hgFind.
";
  exit $status;
}

sub tableExists {
  my ($db, $table) = @_;
  my $cmd = 'show tables like "' . $table . '"';
  my $out =  callMysql("-N -e '$cmd' $db");
  return length($out) > 0;
}

my $ok = GetOptions("help", "debug");
&usage(1) if (! $ok);
&usage(0) if ($opt_help);
&usage(1) if (scalar(@ARGV) < 2);
$gbCommon::verbose = $opt_debug;

my ($baseDir, @dbs) = @ARGV;

foreach my $db ( @dbs ) {
  my $rawDir = "$baseDir/$db";
  makeDir($rawDir);
  foreach my $table (qw/productName geneName author tissue cell description
		        development/) {
      if (&tableExists($db, $table)) {
	  my $cmd = ("-N -e 'select id,name from $table' $db > $rawDir/$table.idName.tmp");
	  runMysql($cmd);
	  renameFile("$rawDir/$table.idName.tmp", "$rawDir/$table.idName");
      }
  }
  if (&tableExists($db, 'refLink')) {
      my $cmd = ("-N -e 'select mrnaAcc,product from refLink' $db > $rawDir/refLink.mrnaAccProduct.tmp");
      runMysql($cmd);
      renameFile("$rawDir/refLink.mrnaAccProduct.tmp", "$rawDir/refLink.mrnaAccProduct");
  }
}

