#!/usr/local/bin/perl

chdir "$ENV{'TWOMASS_XSC_DIR'}/data";

if(!(-e "xsc_aaa") || !(-e "xsc_baa")) {
  system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; wget --no-clobber ftp://ftp.ipac.caltech.edu/pub/2mass/allsky/xsc_aaa.gz");
  system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; wget --no-clobber ftp://ftp.ipac.caltech.edu/pub/2mass/allsky/xsc_baa.gz");
  system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; wget --no-clobber ftp://ftp.ipac.caltech.edu/pub/2mass/allsky/twomass_xsc_schema");
  system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; gzip -dv xsc_aaa.gz");
  system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; gzip -dv xsc_baa.gz");
}

open(ifp,"<twomass_xsc_schema");
open(ofp,">twomass_structure.pro");
print ofp "function twomass_structure\n";
print ofp "str= { \$\n";
$inside=0;
$first=1;
while(<ifp>) {
  if(/^CREATE/) {
    $inside=1;
  } elsif (/^\)/) {
    $inside=0;
  } elsif ($inside) {
    chomp;
    split;
    if(!$first) {
      print ofp ", \$\n";
    } else {
      $first=0;
    }
    print ofp "$_[0]:";
    if($_[1]=~/real/) {
      print ofp "float(0)";
    } elsif($_[1]=~/smallint/) {
      print ofp "fix(0)";
    } elsif($_[1]=~/integer/) {
      print ofp "long(0)";
    } elsif($_[1]=~/date/) {
      print ofp "''";
    } elsif($_[1]=~/character/) {
      print ofp "''";
    } elsif($_[1]=~/double/) {
      print ofp "double(0)";
    }
  }
}
print ofp "}\n";
print ofp "return, str\n";
print ofp "end\n";
close(ifp);

system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; echo xsc_to_fits | idl");
#system("cd $ENV{'TWOMASS_XSC_DIR'}/data ; gzip -v xsc_aaa.fits xsc_baa.fits");
