'/*************************************************************************
'
'  Licensed to the Apache Software Foundation (ASF) under one
'  or more contributor license agreements.  See the NOTICE file
'  distributed with this work for additional information
'  regarding copyright ownership.  The ASF licenses this file
'  to you under the Apache License, Version 2.0 (the
'  "License"); you may not use this file except in compliance
'  with the License.  You may obtain a copy of the License at
'  
'    http://www.apache.org/licenses/LICENSE-2.0
'  
'  Unless required by applicable law or agreed to in writing,
'  software distributed under the License is distributed on an
'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
'  KIND, either express or implied.  See the License for the
'  specific language governing permissions and limitations
'  under the License.
'
' ************************************************************************/
'### Build Support Module for running commands to export and import
'### modules from Word, Excel and PowerPoint Document Analysis driver documents


<job id="DocAnalysisBuildCmd" error="true" debug="true">
   <script language="VBScript" src="DocAnalysisRunMacro.vbs"/>
   <script language="VBScript">

Const CTITLE = "Document Analysis Command"

Const CWORD_DRIVER = "_OOoDocAnalysisWordDriver.doc"
Const CEXCEL_DRIVER = "_OOoDocAnalysisExcelDriver.xls"
Const CPP_DRIVER = "_OOoDocAnalysisPPTDriver.ppt"
Const CStub = "Stripped"

Const CUTIL_APPNAME_WORD = "Word"
Const CUTIL_APPNAME_EXCEL = "Excel"
Const CUTIL_APPNAME_POWERPOINT = "Powerpoint"

Const CDIAG_STD_DELAY = 2

Const CDEFAULT_SOURCE_DIR = ".\sources\"
Const CDEFAULT_TARGET_DIR = "."

Const CSOURCE_DIR_ARG = "X"
Const CTARGET_DIR_ARG = "T"
Const CUSAGE_ARG = "?"

Const CSTR_PAW = "\PAW\"

'######### Doc Analysis Build - Main Script Body ############# 
Dim mArgsNamed, mArgsUnnamed
Dim mSourceDir
Dim mTargetDir

On Error Resume Next

'### Process Arguments ###
Set mArgsNamed = WScript.Arguments.Named
Set mArgsUnnamed = WScript.Arguments.Unnamed

If mArgsNamed.Exists(CUSAGE_ARG) Then
	Usage
	FinalExit
End If

'# Source Dir
if mArgsNamed.Exists(CSOURCE_DIR_ARG) Then
	mSourceDir = mArgsNamed.Item(CSOURCE_DIR_ARG)
Else
	mSourceDir = CDEFAULT_SOURCE_DIR
End If

'# Target Dir
if mArgsNamed.Exists(CTARGET_DIR_ARG ) Then
	mTargetDir = mArgsNamed.Item(CTARGET_DIR_ARG )
Else
	mTargetDir = CDEFAULT_TARGET_DIR
End If

mSourceDir = daFso.GetAbsolutePathName(mSourceDir )
mTargetDir = daFso.GetAbsolutePathName(mTargetDir ) 

'# Check source and target dirs exist
If Not daFso.FolderExists(mSourceDir) Then
	DAErrMsg "Source directory does not exist: " & mSourceDir, CDA_ERR_STD_DELAY 
    FinalExit
End If
If Not daFso.FolderExists(mTargetDir) Then
	DAErrMsg "Target directory does not exist: " & mTargetDir, CDA_ERR_STD_DELAY 
    FinalExit
End If

Set mArgsNamed = Nothing
Set mArgsUnnamed = Nothing

'#### then continue with PAW
ImportAll mTargetDir & CSTR_PAW

'# Cleanup
FinalExit


'######### End - Main Script Body ############# 


'#### Doc Analysis Build - Support Functions ####

Sub Usage()
	DAdiagMsg "Build command line tool to create Document Analysis driver documents" & vbLf & vbLf &_
	"DocAnalysisBuildCmd [/X:<sourceDir>] [/T:<targetDir>]" & vbLf & vbLf &_
	"/X:<sourceDir> base <source> directory " & vbLf & _
	"            The <sourceDir> is the base dir under which all the " & vbLf & _
	"            _res.bas files are located to import from" & vbLf & vbLf & _
	"/T:<targetDir> target directory " & vbLf & _
	"            <targetDir> is where the new Driver docs" & vbLf & _
	"            will be created", 30
End Sub

'######################
Sub FinalExit()
    DACleanUp
	wscript.quit
End Sub

'######################
Sub ImportAll( aTargetDir )

    '#### Create automation servers ####
    DAsetupWrdServer
    DAsetupExcelServer
    DAsetupPPServer
    
    If Not daFso.FolderExists( aTargetDir ) Then
        daFso.CreateFolder( aTargetDir )
    End If
    
    BackupDrivers aTargetDir
    
    DAOpenWrdDriver mSourceDir & "\" & CSTUB & CWORD_DRIVER 
    DAOpenExcelDriver mSourceDir & "\" & CSTUB & CEXCEL_DRIVER
    DAOpenPPDriver mSourceDir & "\" & CSTUB & CPP_DRIVER
    
    DASetTitle CTITLE & " - Import"
    
    ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_WORD
    ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_EXCEL
    ImportSelectedProjectFiles mSourceDir, CUTIL_APPNAME_POWERPOINT
        
    DAsaveWrdDriver aTargetDir & "\" & CWORD_DRIVER
    DAsaveExcelDriver aTargetDir & "\" & CEXCEL_DRIVER
    DAsavePPDriver aTargetDir & "\" & CPP_DRIVER
    
    DACloseApps
End Sub

'######################
Sub BackupDrivers(importdir)
    On Error Resume Next

	Dim wrdPath
	Dim xlsPath
	Dim ppPath
	
	wrdPath = daFso.GetAbsolutePathName(importdir & "\" & CWORD_DRIVER)
	xlsPath= daFso.GetAbsolutePathName(importdir & "\" & CEXCEL_DRIVER) 
	ppPath= daFso.GetAbsolutePathName(importdir & "\" & CPP_DRIVER) 

    If daFso.FileExists( wrdPath ) Then daFso.CopyFile wrdPath, wrdPath & ".bak"
	If daFso.FileExists( xlsPath ) Then daFso.CopyFile xlsPath, xlsPath & ".bak"
	If daFso.FileExists( ppPath ) Then daFso.CopyFile ppPath, ppPath & ".bak"
End Sub

'######################
Sub ImportSelectedProjectFiles(dir, app_name)
    On Error Resume Next
    
    Dim base
    Dim lcApp_name
    lcApp_name = LCase(app_name)
    
    'Driver Specific
    base = dir & "\" & lcApp_name & "\"
        
    DAImportFile base & "ApplicationSpecific.bas", "ApplicationSpecific", app_name
    DAImportFile base & "MigrationAnalyser.cls", "MigrationAnalyser", app_name

    DAImportFile base & "Preparation.bas", "Preparation", app_name

    'app resource
    DAImportFile base & lcApp_name & "_res.bas", lcApp_name & "_res", app_name
    
    'Common
    base = dir & "\"
    DAImportFile base & "AnalysisDriver.bas", "AnalysisDriver", app_name
    DAImportFile base & "CommonMigrationAnalyser.bas", "CommonMigrationAnalyser", app_name
    DAImportFile base & "CollectedFiles.cls", "CollectedFiles", app_name
    DAImportFile base & "DocumentAnalysis.cls", "DocumentAnalysis", app_name
    DAImportFile base & "FileTypeAssociation.cls", "FileTypeAssociation", app_name
    DAImportFile base & "IssueInfo.cls", "IssueInfo", app_name
    DAImportFile base & "PrepareInfo.cls", "PrepareInfo", app_name
    DAImportFile base & "StringDataManager.cls", "StringDataManager", app_name
    DAImportFile base & "LocalizeResults.bas", "LocalizeResults", app_name
 
    DAImportFile base & "CommonPreparation.bas", "CommonPreparation", app_name

    'common resource
    DAImportFile base & "common_res.bas", "common_res", app_name
    DAImportFile base & "results_res.bas", "results_res", app_name

End Sub

</script>
</job>

