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

#
# $Log: not supported by cvs2svn $



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)]

set CVSRevisionAuthor "\$Revision: 1.1 $ \$Author: shang $"
set args $argv
set system SR
set searchDirectory HOM
APSParseArguments {system searchDirectory}

set baseDir /home/helios/$system/daily
set fileList ""
set dirs [glob /home/helios/$system/daily/????]
set start [clock seconds]
set currentYear [clock format [clock seconds] -format %Y]
set currentMonth [clock format [clock seconds] -format %m]
if ![file exist $baseDir/${searchDirectory}.searchResults] {
    set year $currentYear
    while {$year>=2002} {
        lappend yearList $year
        set year [expr $year - 1]
    }
} else {
    set yearList $currentYear
}
puts $yearList
set fileList ""
foreach year $yearList {
    for {set month 12} {$month >=1} {incr month -1} {
        if {$system=="SR"} {
            set monthDir $year/[format %02ld $month]
        } else {
            set monthDir [string rang $year 2 3][format %02ld $month]
        }
        if ![file exists $baseDir/$monthDir] continue
        puts "Looking in $baseDir/$monthDir ..."
        exec find $baseDir/$monthDir -follow -name $searchDirectory > $searchDirectory.$year.$month
        lappend fileList $searchDirectory.$year.$month
    }
}
puts $fileList
if [llength $fileList] {
    catch {file delte -force $searchDirectory.search}
    eval exec cat $fileList >> $searchDirectory.search
    eval file delete -force $fileList 
    if [catch {exec plaindata2sdds $searchDirectory.search $searchDirectory.search.sdds -norowcount \
                 -col=DirectoryName,string } result] {
        puts stderr "error in converting to sdds file: $result"
        exit 1
    }
    catch {file delte -force $searchDirectory.search}
    if [file exist $baseDir/${searchDirectory}.searchResults] {
        if [catch {exec sddsselect $searchDirectory.search.sdds $baseDir/${searchDirectory}.searchResults \
                     -match=DirectoryName -invert $searchDirectory.search.sdds1 } result] {
            puts stderr "error in checking new directories: result"
            exit 1
        }
        set rows [exec sdds2stream -rows=bar $searchDirectory.search.sdds1]
        if $rows {
            if [catch {exec sddscombine $searchDirectory.search.sdds1 $baseDir/${searchDirectory}.searchResults \
                         -merge -pipe=out \
                     | sddssort -pipe=in $searchDirectory.search.sdds2 -col=DirectoryName,decreasing } result] {
                puts stderr "Error in combining new directories: $result"
                exit 1
            }
            catch {exec mv $searchDirectory.search.sdds2 $baseDir/${searchDirectory}.searchResults}
        } else {
            puts "No new directories found."
            exit 0
        }
        file delete -force "$searchDirectory.search $searchDirectory.search.sdds1 $searchDirectory.search.sdds2"
    } else {
        if [catch {exec sddsprocess $searchDirectory.search.sdds  \
                     -print=col,Comment,  -pipe=out \
                 | sddssort -pipe=in -col=DirectoryName,decreasing $baseDir/${searchDirectory}.searchResults } result] {
            puts stderr "Error in printing comment column: $result"
            exit 1
        }
    }
    file delete -force "$searchDirectory.search.sdds"
}
exit 0


            
