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

#input  /home/helios/oagData/pvdata/iocRecNamesOAG.sdds
#       ../requestFiles/IDBM.req.template
#       ../requestFiles/IDBM.other.req
#
#output ../requestFiles/IDBM.req
#       ../requestFiles/IDBM.req.beamlines
#       ../requestFiles/IDBM.req.categories
#       ../requestFiles/IDBM.req.sr

set root IDBM
set recordFile /home/helios/oagData/pvdata/iocRecNamesOAG.sdds

set output ../requestFiles/IDBM.req
set install 0
set args $argv

for {set sector 1} {$sector<41} {incr sector} {
    puts stdout "Working on sector $sector"
    
    set sectorf [format %02ld $sector]
    exec sddsprocess ../requestFiles/IDBM.req.template ../requestFiles/IDBM.req.$sector \
      -reedit=column,ControlName,%/<sector>/$sector/%/<sectorf>/$sectorf/ \
      -reedit=column,Beamline,%/<sector>/S$sector/%/<sectorf>/S$sectorf/
    lappend fileList ../requestFiles/IDBM.req.$sector
    scan $sector %ld sector
}


if [catch {eval exec sddscombine $fileList ../requestFiles/IDBM.other.req -merge -pipe=out \
             | sddsprocess -pipe \
             -edit=col,rec_name,ControlName,S?/./D \
             -print=parameter,InstallLocation,/home/helios/oagData/SCR/requestFiles/IDBM.req \
             | sddssort -column=rec_name -pipe \
             | sddsxref -reuse -nowarnings -pipe $recordFile -match=rec_name \
             | sddsconvert -ascii -pipe \
             -delete=col,rec_name,ioc_name -delete=parameter,NumberCombined \
             | sddssort -pipe=in ../requestFiles/IDBM.req -col=Beamline -column=ControlName -unique \
         } result] {
    puts stderr "error: $result"
    exit
}
    
eval file delete $fileList

exec sddsprocess ../requestFiles/IDBM.req ../requestFiles/IDBM.req.sr \
    -reprint=column,Category,ID -reprint=column,Beamline,SR \
    -print=column,OpsIntervention,n,type=character \
    "-delete=parameter,*" \
    "-match=col,ControlName=*Gap*,ControlName=*Device*M,|"

if [catch {APSMakeSCRCategoryFiles -input ../requestFiles/IDBM.req} result] {
    puts stderr "Error for $argv0 in $pwd: $result"
    exit 1
}
if {[catch {exec sddsconvert ../requestFiles/IDBM.req.categories -pipe=out -ascii | \
              sddsprocess -pipe=in ../requestFiles/IDBM.req.categories -nowarn -delete=parameter,NumberCombined \
              -reprint=parameter,InstallLocation,/home/helios/oagData/SCR/requestFiles/IDBM.req.categories} result]} {
    puts stderr "error: $result"
    exit
}
if {[catch {exec sddsconvert ../requestFiles/IDBM.req.beamlines -pipe=out -ascii | \
              sddsprocess -pipe=in ../requestFiles/IDBM.req.beamlines -nowarn -delete=parameter,NumberCombined \
              -reprint=parameter,InstallLocation,/home/helios/oagData/SCR/requestFiles/IDBM.req.beamlines} result]} {
    puts stderr "error: $result"
    exit
}
file delete ../requestFiles/IDBM.req.categories~ ../requestFiles/IDBM.req.beamlines~
