#! /bin/bash

# destination file as specfied on command line
outfile=$1

# create XML doc for a single XML object
function processOneXML
{
    fileName=$1
    xsltproc --novalid --stringparam fileName "$fileName"  ../tools/docs/waveset2docbook.xsl "$fileName" >> $outfile
}


# create docbook header
echo '<?xml version="1.0"?>
<!DOCTYPE article
  PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<article lang="">
<sect1><title>Appendix C: Waveset Objects</title>

' > $outfile


# create docbook snippet for each document...

# root objects
echo '
<sect2><title>System Configuration Objects</title>
' >> $outfile
processOneXML "WEB-INF/config/Configuration-ReconcileConfiguration.xml"
processOneXML "WEB-INF/config/Configuration-UserUIConfig.xml"
processOneXML "WEB-INF/config/Configuration-UserExtendedAttributes.xml"
processOneXML "WEB-INF/config/LoginApp-EndUserInterface.xml"
processOneXML "WEB-INF/config/Configuration-CustomCatalog.xml"
echo '
</sect2>
' >> $outfile

echo '
<sect2><title>Organizations</title>
' >> $outfile
processOneXML "WEB-INF/config/Waveset-ObjectGroups.xml"
echo '
</sect2>
' >> $outfile

echo '
<sect2><title>Policies</title>
' >> $outfile
processOneXML "WEB-INF/config/Policy-AdminAccountPolicy.xml"
processOneXML "WEB-INF/config/Policy-AdminPasswordPolicy.xml"
processOneXML "WEB-INF/config/Policy-UserAccountPolicy.xml"
processOneXML "WEB-INF/config/Policy-UserPasswordPolicy.xml"
echo '
</sect2>
' >> $outfile

echo '
<sect2><title>Rule Libraries</title>
' >> $outfile
processOneXML "WEB-INF/config/Configuration-RuleLib.xml"
processOneXML "WEB-INF/config/Configuration-ValidationLibrary.xml"
echo '
</sect2>
' >> $outfile

echo '
<sect2><title>Shared User Forms</title>
' >> $outfile
processOneXML "WEB-INF/config/UserForm-EmptyForm.xml"
echo '
</sect2>
' >> $outfile

echo '
<sect2><title>Shared Workflows</title>
' >> $outfile
processOneXML "WEB-INF/config/TaskDefinition-ExpirePassword.xml"
processOneXML "WEB-INF/config/TaskDefinition-PasswordExpireWarning.xml"
processOneXML "WEB-INF/config/Configuration-ApprovalProcess.xml"
processOneXML "WEB-INF/config/Configuration-DisableIDMAccount.xml"
echo '
</sect2>
' >> $outfile



# LDAP objects
echo '
<sect2><title>LDAP Objects</title>
' >> $outfile
processOneXML WEB-INF/config/ldap/Resource-LDAP.xml
processOneXML WEB-INF/config/ldap/TaskDefinition-CreateUserProcess.xml
processOneXML WEB-INF/config/ldap/TaskDefinition-UpdateUserProcess.xml
processOneXML WEB-INF/config/ldap/TaskDefinition-DeprovisionUserProcess.xml
processOneXML WEB-INF/config/ldap/EmailTemplate-Password.xml
processOneXML WEB-INF/config/ldap/EmailTemplate-UserID.xml
processOneXML WEB-INF/config/ldap/User-LDAPSyncProxy.xml
processOneXML WEB-INF/config/ldap/UserForm-ReconcileForm.xml
processOneXML WEB-INF/config/ldap/UserForm-AsyncForm.xml
processOneXML WEB-INF/config/ldap/Configuration-LDAPRuleLibrary.xml
processOneXML WEB-INF/config/ldap/Rule-LDAPCorrelationRule.xml

echo '
</sect2>
' >> $outfile


# end user objects
echo '
<sect2><title>End User Objects</title>
' >> $outfile
processOneXML "WEB-INF/config/endUser/UserForm-ApprovalList.xml"
processOneXML "WEB-INF/config/endUser/UserForm-Dashboard.xml"
processOneXML "WEB-INF/config/endUser/UserForm-Navigation.xml"
echo '
</sect2>
' >> $outfile


# docbook footer
echo '
</sect1></article>
' >> $outfile

