#!/bin/sh
# The next line restarts using tclsh since sh ignores the backslash \
exec tclsh "$0" "$@"

#
# Tcl script to copy pem files to oag web site
#

#$Log: not supported by cvs2svn $
#

set oagpatch /home/oxygen/OAG/oagWWW/pem
set libpatch /usr/local/oag/lib_patch

# **************************** copyall *********************************
proc copyall {type file} {
    global oagpatch
    safecopy $file $oagpatch/$file
}
# **************************** safecopy ********************************
proc safecopy {from to} {
    global libpatch
    if {[file exists $from]} {
	set mtimefrom [file mtime $from]
    } else {
	puts " *** Error: $from does not exist"
	return
    }
    if {[catch {exec diff $from $libpatch/solaris/$from} results]} {
	puts "You must use cppatch first"
	return
    }
    if {[file exists $to]} {
	set mtimeto [file mtime $to]
    } else {
	set mtimeto -1
    }
    if {$mtimeto < $mtimefrom} {
	# Delete any old one first
	if {[file exists $to]} {
	    set err [catch "eval exec rm $to" errormsg]
	    if {$err} {
		puts " *** Error: $errormsg"
	    }
	}
	# Copy new one
	set err [catch "eval exec cp -p $from $to" errormsg]
	if {$err} {
	    puts " *** Error: $errormsg"
	} else {
	    puts "  Copied $from -> $to"
	    # Change permission
	    set err1 [catch "eval exec chmod g+w $to" errormsg1]
	    if {$err1} {
		puts "  (Could not change permissions to group write)"
	    }
	    # Change group
	    set err1 [catch "eval exec chgrp oagmgr $to" errormsg1]
	    if {$err1} {
		puts "  (Could not change group to oagmgr)"
	    }
	}
    } elseif {$mtimeto == $mtimefrom} {
	puts "  Same age: $to"
    } else {
	puts "  File: $to is newer than: $from"
	puts "  File information:" 
	puts "  [eval exec ls -la $from]"
	puts "  [eval exec ls -la $to]"
	puts -nonewline "  Copy anyway \[y/N\]? "
	gets stdin response
	if {![string compare $response "y"] || ![string compare $response "Y"]} {
	    # Delete any old one first
	    if {[file exists $to]} {
		set err [catch "eval exec rm $to" errormsg]
		if {$err} {
		    puts " *** Error: $errormsg"
		}
	    }
	    set err [catch "eval exec cp -p $from $to" errormsg]
	    if {$err} {
		puts " *** Error: $errormsg"
	    } else {
		puts "  Copied $from -> $to"
		# Change permission
		set err1 [catch "eval exec chmod g+w $to" errormsg1]
		if {$err1} {
		    puts "  (Could not change permissions to group write)"
		}
		# Change group
		set err1 [catch "eval exec chgrp oagmgr $to" errormsg1]
		if {$err1} {
		    puts "  (Could not change group to oagmgr)"
		}
	    }
	}
    }
}

# **********************************************************************
# **************************** main ************************************
# **********************************************************************

# Usage
set usage \
  "Usage: pempatch <files>

This routine will copy the specified files to the oag web site"

# Print usage
if {!$argc} {
    puts $usage
    exit 1
}

set mkindex 0
# Loop over files
foreach file "$argv" {
    set found 0
    puts "Processing: $file"
    if {[file exists $file]} {
	set found 1
	if {![string compare [file extension $file] ".tcl"]} {
	    # Library
	    set mkindex 1
	    copyall lib $file
	} else {
	    puts "$file is not a tcl script"
	}
    }
    if {!$found} {
	    puts "  $file does not exist"
    }
}

cd $oagpatch
exec makeTclIndex .

exit 0
