2021-10-01 20:35:43 +01:00

135 lines
3.7 KiB
Tcl
Executable File

#!/opt/tarantella/bin/bin/ttatcl
#TCLX_LIBRARY=/opt/tarantella/bin/lib/tcl7.5
#export TCLX_LIBRARY
set file tta.DataStore
set shFile restore.sh
set ttaCmd /opt/tarantella/bin/tarantella
set attribute ""
set tfn ""
set object ""
set ouFile tta.orgUnits
set cnFile tta.containers
set personFile tta.persons
set serverFile tta.server
set applFile tta.applications
set groupFile tta.group
set linkFile tta.link
# We are opening all neccessery files
set ouFileFp [open $ouFile w]
set cnFileFp [open $cnFile w]
set personFileFp [open $personFile w]
set serverFileFp [open $serverFile w]
set appFileFp [open $applFile w]
set groupFileFp [open $groupFile w]
set linkFileFp [open $linkFile w]
system ">$shFile"
for_file line $file {
regsub -all {""} $line {"} line
if [regexp {Attributes for .*/_ens/(.*):} $line all newtfn ] {
if [clength $tfn] {
set fp $appFileFp
if [cequal $object new_group] { set fp $groupFileFp }
if [cequal $object new_host] { set fp $serverFileFp }
if [cequal $object new_orgunit] { set fp $ouFileFp }
if [cequal $object new_person] { set fp $personFileFp }
if [cequal $object new_container] {
set fp $cnFileFp
puts $fp "$object --name \"$tfn\" "
} else {
puts $fp "$object --name \"$tfn\" $attribute"
}
}
set tfn $newtfn
set attribute ""
continue
}
if [regexp {scottaWebtopContents: (.*)} $line all linkList ] {
# add_links
regsub -all {,} $linkList { } linkList
puts $linkFileFp "add_link --name \"$tfn\" --link $linkList"
continue
}
if [regexp {links: (.*)} $line all linkList ] {
# add_links
regsub -all {,} $linkList { } linkList
puts $linkFileFp "add_link --name \"$tfn\" --link $linkList"
continue
}
if [regexp -nocase {objectclass: (.*)} $line all class ] {
set class [lindex [split $class ,] 0]
switch $class {
organization { set object new_orgunit }
organizationalunit { set object new_orgunit }
container { set object new_container }
inetorgperson { set object new_person}
scottagroupofnames { set object new_group}
scottahtmldocument { set object new_doc}
scottaxapplication { set object new_xapp}
scottagroupofnames { set object new_group}
scottacharacterapplication { set object new_charapp}
scottawindowsapplication { set object new_windowsapp }
scottaauxhost { set object new_host }
device { set object new_host }
default { set object undef ; echo UNDEF \"$class\" in $tfn; exit}
}
continue
}
if [regexp {(.*): (.*)} $line all attr value ] {
# Ignore
if [regexp {^windowclose$} $attr ] { continue }
if [regexp {^share$} $attr ] { continue }
if [regexp {^passtype$} $attr ] { continue }
if [regexp {^Organizational Unit$} $attr ] { continue }
# Modify
if [regexp {^member$} $attr ] { regsub -all {,} $value { } value }
if [regexp {^appserv$} $attr ] { regsub -all {,} $value { } value }
if [regexp {^Name$} $attr ] { set attr description }
if [regexp {^scottaInheritWebtop$} $attr ] { set attr inherit }
append attribute "--$attr $value "
}
}
close $ouFileFp
close $cnFileFp
close $personFileFp
close $serverFileFp
close $appFileFp
close $groupFileFp
close $linkFileFp
set fp [open $shFile w]
puts $fp "#!/bin/sh "
puts $fp "cat $ouFile | $ttaCmd object script"
puts $fp "cat $cnFile | $ttaCmd object script"
puts $fp "cat $personFile | $ttaCmd object script"
puts $fp "cat $serverFile | $ttaCmd object script"
puts $fp "cat $applFile | $ttaCmd object script"
puts $fp "cat $groupFile | $ttaCmd object script"
puts $fp "cat $linkFile | $ttaCmd object script"
close $fp
system "chmod 755 $shFile"
#system "cat $shFile"
echo "Run $shFile to Restore ENS !!!"