#!/usr/bin/env perl
#=======================================================================
# name - pasta
# purpose - wrapper for pasta subroutine in pasta.pm package
#
# Revision History:
# ----------------
# 03Feb2011  Stassi  Moved routine to package and wrote script to access
#=======================================================================
use strict;
use warnings;
use FindBin;
use lib $FindBin::Bin;
use Pasta ("pasta");

my $name;

# main program
#-------------
{
    my (@params, @retVals);

    init();
    @params = @ARGV;
    @retVals = pasta(@params);

    print "@retVals\n";
}

#=======================================================================
# name - init
# purpose - get runtime parameters and flags
#=======================================================================
sub init {
    use File::Basename;
    use Getopt::Long;
    my $help;

    $name = basename $0;

    GetOptions( "h"    => \$help,
                "help" => \$help );

    usage() if $help;
    usage() unless scalar(@ARGV) == 2;

    return;
}

#=======================================================================
# name - usage
# purpose - print usage information
#=======================================================================
sub usage {
    print << "EOF";

usage: $name string template

Purpose: Use tokens in template to extract information from string

Supported tokens:
   %s    experiment ID (a string followed by ".")
   %y4   year,  e.g., 1997
   %y2   year,  e.g., 97
   %m2   month, e.g., 12
   %d2   day,   e.g., 31
   %h2   hour,  e.g., 18
   %n2   minute, e.g., 30
   %c    single wildcard character, e.g. %c%c for nh

Restrictions:
 1. The token "%s" must be followed by a "."
 2. %m3 is not an allowable token.

Return values: year yr mo mon dy hr expid grads_string min
    where
          year = 4-digit year
            yr = 2-digit year
            mo = 2-digit month
           mon = 3-character month label
            dy = 2-digit day
            hr = 2-digit hour
         expid = experiment ID string
  grads_string = GRADS string
           min = 2-digit minutes

Examples and results:
> $name efake.prog.t19971231.18Z %s.prog.t%y4%m2%d2.%h2Z
1997 97 12 dec 31 18 efake 18:00Z31dec1997 00

> $name efake.prog.t19971231.18Z efake.%s.t%y4%m2%d2.%h2Z
1997 97 12 dec 31 18 prog 18:00Z31dec1997 00

EOF
exit;
}
