#!/bin/sh  
# \
exec oagtclsh "$0" "$@"

set auto_path [linsert $auto_path 0  /usr/local/oag/apps/lib/$env(HOST_ARCH)]
set auto_path [linsert $auto_path 0 /usr/local/oag/lib_patch/$env(HOST_ARCH)]

APSStandardSetup

proc Convert {args} {
    set xlsinput ""
    set csvoutput ""
    set outputTemplate ""
    APSStrictParseArguments {xlsinput csvoutput outputTemplate}

    if {![file exists $xlsinput]} {
        puts stderr "Error: $xlsinput does not exist"
        exit
    }
    if {[file exists $csvoutput]} {
        file delete -force $csvoutput
    }
    if [string length $outputTemplate] {
        if {[catch {exec ssconvert --export-type=Gnumeric_stf:stf_csv --export-file-per-sheet \
                      $xlsinput $outputTemplate} results]} {
                # puts stderr "$results"
        }
    } else {
        if {[catch {exec ssconvert --export-type=Gnumeric_stf:stf_csv $xlsinput $csvoutput} results]} {
                # puts stderr "$results"
        }
    }
}


set usage {usage: xls2csv -input <filename> [-output <filename> | -outputTemplate <string>]}

set input ""
set output ""
set outputTemplate ""
set args $argv
if {[APSStrictParseArguments {input output outputTemplate}]} {
    puts stderr $usage
    puts stderr "If (and only if) outputTemplate is given, each sheet is written to a separate file."
    puts stderr "The template can use %s for the sheet name and %n for the sheet number."
    exit 1
}
if {[string length $input] == 0} {
    puts stderr $usage
    exit 1
}
if {[string length $output] == 0 && [string length $outputTemplate]==0} {
    puts stderr $usage
    exit 1
}

Convert -xlsinput $input -csvoutput $output -outputTemplate $outputTemplate

