#!/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)]

set CVSRevisionAuthor "\$Revision: 1.4 $ \$Author: soliday $"

proc CompareCommitVsPatch {} {
    global env
    set home $env(HOME)
    set dirs "oag/apps/src/tcltklib oag/apps/src/corbit  oag/apps/src/feedback oag/apps/src/keutils oag/apps/src/mplib/booster oag/apps/src/mplib/leutl oag/apps/src/mplib/par oag/apps/src/mplib/sr oag/apps/src/mplib/misc oag/apps/src/mplib/teststand oag/apps/src/pem oag/apps/src/tcltkapp/oagapp oag/apps/src/utils"
    foreach dir $dirs {
        set entries [file join $home $dir CVS Entries]
        if {![file exists $entries]} {
            puts "Warning: $entries does not exist"
            continue
        }
        set fid [open $entries r]
        set data [split [read -nonewline $fid] \n]
        close $fid
        set cvsFiles ""
        foreach line $data {
            append cvsFiles "[lindex [split $line /] 1] "
        }
        foreach cvsFile $cvsFiles {
            set script [file join $home $dir $cvsFile]
            if {![file exists $script]} {
                puts "Warning: $script does not exist"
                continue
            }
            if {![file isfile $script]} {
                continue
            }
            if {[file extension $script] == ".tcl"} {
#                puts "checking $cvsFile"
                set problem 0
                foreach mainDir "/net/phoebus/usr/local-sun4u/oag/apps/lib/solaris /net/helios/usr/local-sun4u/oag/apps/lib/solaris" {
                    if {![file exists [file join $mainDir $cvsFile]]} {
                        puts "Warning: [file join $mainDir $cvsFile] does not exist"
                        continue
                    }
                    if {[catch {exec diff $script [file join $mainDir $cvsFile]} results]} {
                        if {$problem == 0} {
                            incr problem
                            puts "$script"
                        }
                        if {[string first $env(USER) $results] != -1} {
                            set yours "(*** $env(USER) ***)"
                        } else {
                            set yours ""
                        }
                        puts "-- $yours [file join $mainDir $cvsFile]"
                    }
                }
            } elseif {([string match "Make*" $cvsFile]) ||
                      ([string match "*.notes" $cvsFile]) ||
                      ([string match "*.au" $cvsFile]) ||
                      ([string match "*.cc" $cvsFile]) ||
                      ([string match "*.h" $cvsFile]) ||
                      ([string match "*.c" $cvsFile])} {
                continue
            } else {
                if {![file executable $script]} {
                    continue
                }
                set problem 0
                foreach mainDirs {"/net/phoebus/usr/local-sun4u/oag/bin_patch/solaris/ /net/phoebus/usr/local-sun4u/oag/apps/bin/solaris" "/net/helios/usr/local-sun4u/oag/bin_patch/solaris/ /net/helios/usr/local-sun4u/oag/apps/bin/solaris"} {
                    if {[file exists [file join [lindex $mainDirs 0] $cvsFile]]} {
                        set mainDir [lindex $mainDirs 0]
                    } else {
                        set mainDir [lindex $mainDirs 1]
                    }
                    if {![file exists [file join $mainDir $cvsFile]]} {
                        puts "Warning: [file join $mainDir $cvsFile] does not exist"
                        continue
                    }
                    if {[catch {exec diff $script [file join $mainDir $cvsFile]} results]} {
                        if {$problem == 0} {
                            incr problem
                            puts "$script"
                        }
                        if {[string first $env(USER) $results] != -1} {
                            set yours "(*** $env(USER) ***)"
                        } else {
                            set yours ""
                        }
                        puts "-- $yours [file join $mainDir $cvsFile]"
                    }
                }
            }
        }
    }
}

CompareCommitVsPatch
