#!/usr/local/bin/tclsh8.3

catch {source "[file dirname [info script]]/lib.tcl"}

set lFileList [::files::FindFile [lindex $argv 0]]
##if {([catch {set lSedData [::files::Cat [lindex $argv 1]]}])} {
##	set lSedData [::files::Cat "[file dirname [info script]]/[lindex $argv 1]"]
##}
set lSedFile [lindex $argv 1]
if {(![file exists $lSedFile])} {
	set lSedFile "[file dirname [info script]]/[lindex $argv 1]"
}

foreach lFile $lFileList {
	file lstat $lFile lFileStats
	if {($lFileStats(type) != "link")} {
		set lSedCommand "sed -f $lSedFile $lFile > $lFile\.tmp"
		system $lSedCommand
		set lPermissions [file attributes $lFile -permissions]
		file attributes "$lFile\.tmp" -permissions $lPermissions
		set lDiffCommand "diff -l $lFile $lFile\.tmp"
		if {([catch {set lDiffOutput [exec diff -l $lFile $lFile\.tmp]} lCatch])} {
			puts $lFile
			regsub -all "\[\r\n]*child process exited abnormally\[\r\n]*" $lCatch "" lCatch
			puts $lCatch
			file rename -force $lFile "$lFile\.del"
			file rename -force "$lFile\.tmp" $lFile
			file delete -force "$lFile\.del"
		} else {
			file delete -force "$lFile\.tmp"
		}
	}
}
