; ************************************************* AUTO SETUP CONFIGURATION FILE *****************************************************
; Description:
;     This is an INI file which contains the configuration information for the automated setup of either an 
;     ENGINEERING or PRODUCTION environment in a Windows OS.
;
; Author: Duc Le
;
; ******************************************************************************************************************************
;
;
;
; ******************************************************************************************************************************
; THIS SECTION IS REQUIRED
; ******************************************************************************************************************************
[General]
Program_Name = SM3
; 64-bit or 32-bit. Possible values: 32 or 64
Application_Platform = 32

[Global_Settings]
Always_Run_Application_Using_Admin_Account = true
Suppress_All_Prompts = true
Provide_Windows_Password_For_Auto_Login = true

; ******************************************************************************************************************************
; THIS SECTION IS REQUIRED
; ******************************************************************************************************************************
; This section defines all the setup steps to be performed and allow the user the option of enabling/disabling each step
; The key can be anything.
; The value must define the setup step and its associated section name separated by comma: Setup_Step,Section_Name
; Below is a list of all possible setup steps:
;    CONFIGURE_NETWORK_ADAPTERS
;    RUN_APPLICATIONS
;    INSTALL_SOFTWARE_PACKAGES
;    ENABLE_INTERNET_INFORMATION_SERVICES
;    CREATE_DIRECTORIES
;    CREATE_NETWORK_SHARES
;    SET_ENVIRONMENT_VARIABLES
;    SET_DOTNET_FRAMEWORK_2_SECURITY_ZONE_LEVELS
;    TRANSFER_FILE_PACKAGES
;    MODIFY_WINDOWS_REGISTRY
;    PROCESS_GUTS_CONFIG_FILE
;    CREATE_WINDOWS_SHORTCUTS
;    ASSIST_BUILDING_GUTS_APP
;    REMOVE_FILES_FOLDERS
;
; The setup setup can be run more than once by creating another key and assigned the setup step to it
; Each setup step needs a section name. Section name provides all the information necessary for the setup step
; The sequence of the execution of the setup steps will be in the same order as they are specified.
; ******************************************************************************************************************************
[Setup_Step_Manager]
step = RUN_APPLICATIONS,Extract_Visual_Studio_Archives
step = TRANSFER_FILE_PACKAGES,DVD_Software_Suite
step = RUN_APPLICATIONS,Extract_Software_Suite
step = INSTALL_SOFTWARE_PACKAGES,Install_Microsoft_HotFix
step = RUN_APPLICATIONS,Import_Trusted_Publisher_Certificates
step = INSTALL_SOFTWARE_PACKAGES,Install_Software
step = RUN_APPLICATIONS,Shut_Down_National_Instrument_Processes
step = REMOVE_FILES_FOLDERS , Files_Folders_Removal

;step = ENABLE_INTERNET_INFORMATION_SERVICES,Windows_Features
;step = CREATE_DIRECTORIES,Paths_Creation
;step = CREATE_NETWORK_SHARES,Paths_Sharing
;step = SET_ENVIRONMENT_VARIABLES,Env_Variables
;step = SET_DOTNET_FRAMEWORK_2_SECURITY_ZONE_LEVELS
;step = TRANSFER_FILE_PACKAGES,Files_Transfer_Packages
;step = MODIFY_WINDOWS_REGISTRY,Windows_Registry
;step = PROCESS_GUTS_CONFIG_FILE,GUTS_Config_File
;step = CREATE_WINDOWS_SHORTCUTS,Windows_Shortcuts
;step = ASSIST_BUILDING_GUTS_APP,GUTS_Pre_Build_Assistance
;step = REMOVE_FILES_FOLDERS , Files_Folders_Removal

[Install_Microsoft_HotFix]
app1_name = HotFix for Windows (KB2921916)
app1_setup_file = c:\windows\system32\wusa.exe
app1_setup_argument = "{user_temp_folder}\mk698\extraction\MS_HotFix\Windows6.1-KB2921916-x64.msu" /quiet /norestart
app1_reg_path = SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_2_for_KB2921916~31bf3856ad364e35~amd64~~6.1.1.0
app1_reg_type = local_machine
app1_reboot_computer_at_completion = yes
app1_reboot_computer_immediately = yes

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; This section is used to install various software application
; For each software application to be installed, 4 things can be defined:
;
; Possible keys:
;     app#_name (REQUIRED. Name of the application to be installed/checked)
;     app#_setup_file (OPTIONAL. Path and name of the installer)
;         - the setup file can make use of macros. Look below for the available macros
;     app#_setup_argument (OPTIONAL. Argument for the setup file. Usually to perform unattended install)
;         - sometimes the argument can include paths.  Some programs will require absolute path while others allow relative paths
;           the user has the option of specifying relative paths in the argument and have the program resolve them at runtime
;           In order to make this possible, the user will have to specify a new key for each path to be resolved in the argument
;         - the argument can specify {app#_path} 
;         - the argument can make use of macros. Look below for the available macros
;         - the actual path being inserted in the argument will not have backslash at the end of the path
;     app#_setup_confirm_prompt (OPTIONAL. Prompt user to confirm before installation starts.)
;          - possible values: yes, no
;            - yes: there will be prompt asking user confirm/refuse install
;            - no: installation will start automatically ( this is the default )
;     app#_exe_file (REQUIRED only if app#_hklm_reg_key is not specified. 
;                    This is used to verify that the software successfully installed)
;     app#_reg_path (REQUIRED only if app#_exe_file is not specified. Registry folder path, not including valuename)
;     app#_reg_type (REQUIRED only if app#_reg_key is specified)
;            - there are only three options for this key ( classes_root, current_user, local_machine)
;     app#_reg_value (REQUIRED only if app#_reg_key is specified. Registry value name's value)
;     app#_reg_name (REQUIRED only if app#_reg_key is specified.  Registry value name)
;     app#_reg_compare (REQUIRED only if app#_reg_key is specified.  Compare operator between value name's value specified here versus actual value read from registry)
;             - there are only six options for this key ( eq, lt, gt, lte, gte, ne )
;
; Available Path macros:
;    {user_desktop}, {user_temp_folder}, {cd_drive}
;
; example 1:
;     app1_name = Perl 5.6.1.638
;     app1_setup_file = {user_temp_folder}\Installer.bat
;     app1_exe_file = C:\Perl\bin\perl.exe
;
; example 2:
;     app1_reg_path = SOFTWARE\National Instruments\NI-488.2\CurrentVersion
;     app1_reg_type = local_machine
;     app1_reg_value = 15.0
;     app1_reg_name = Version
;     app1_reg_compare = gte
;     app1_name = National Instrument 488.2 (v15 or higher)
;     app1_setup_file = C:\ni\setup.exe
;
; example 3:
;     app1_exe_file = C:\Perl\bin\perl.exe
;     app1_name = Perl 5.6.1.638
;
; example 4:
;     app1_name = Sapera LT 8.11 (x64)
;     app1_setup_file = ..\..\..\..\..\Deployment\SM3_IB_Auto_Setup\Repository\Software\TeledyneDalsa\Sapera_LT_8.11_RuntimeSetup.exe
;     app1_setup_argument = -s -f1"{app1_setup_file}\sapera_setup.iss" 
;     app1_reg_path = SOFTWARE\Teledyne DALSA\Sapera LT
;     app1_reg_type = local_machine
;     app1_reg_name = IsSaperaFrameGrabberSupport
;
; ******************************************************************************************************************************
; Visual Studio ClassRoot Registry Keys
;
;    {"VS2005", "VisualStudio.DTE.8.0"},
;    {"VS2008", "VisualStudio.DTE.9.0"},
;    {"VS2010", "VisualStudio.DTE.10.0"},
;    {"VS2012", "VisualStudio.DTE.11.0"},
;    {"VS2013", "VisualStudio.DTE.12.0"},
;    {"VS2015", "VisualStudio.DTE.13.0"}
;
; Visual Studio Redistributable Local_Machine Registry Keys
;
;    {"VS2005_x64", @"SOFTWARE\Classes\Installer\Products\1af2a8da7e60d0b429d7e6453b3d0182"},
;    {"VS2005_x86", @"SOFTWARE\Classes\Installer\Products\c1c4f01781cc94c4c8fb1542c0981a2a"},
;    {"VS2008_x64", @"SOFTWARE\Classes\Installer\Products\67D6ECF5CD5FBA732B8B22BAC8DE1B4D"},
;    {"VS2008_x86", @"SOFTWARE\Classes\Installer\Products\6E815EB96CCE9A53884E7857C57002F0"},
;    {"VS2010_x64", @"SOFTWARE\Classes\Installer\Products\1926E8D15D0BCE53481466615F760A7F"},
;    {"VS2010_x86", @"SOFTWARE\Classes\Installer\Products\1D5E3C0FEDA1E123187686FED06E995A"},
;    {"VS2012_x64", @"SOFTWARE\Classes\Installer\Dependencies\{ca67548a-5ebe-413a-b50c-4b9ceb6d66c6}"},
;    {"VS2012_x86", @"SOFTWARE\Classes\Installer\Dependencies\{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}"},
;    {"VS2013_x64", @"SOFTWARE\Classes\Installer\Dependencies\{050d4fc8-5d48-4b8f-8972-47c82c46020f}"},
;    {"VS2013_x86", @"SOFTWARE\Classes\Installer\Dependencies\{f65db027-aff3-4070-886a-0d87064aabb1}"},
;    {"VS2015_x64", @"SOFTWARE\Classes\Installer\Dependencies\{3ee5e5bb-b7cc-4556-8861-a00a82977d6c}"},
;    {"VS2015_x86", @"SOFTWARE\Classes\Installer\Dependencies\{23daf363-3020-4059-b3ae-dc4ad39fed19}"}
;
; ******************************************************************************************************************************
[Install_Software]
app1_name = Visual Studio 2012
app1_setup_argument = /passive /norestart
app1_reg_path = VisualStudio.DTE.11.0
app1_reg_type = classes_root
app1_setup_file = {user_temp_folder}\mk698\extraction\vs2012\vs_professional.exe

app2_name = Visual Studio 2012 - Update 4
app2_setup_file = {user_temp_folder}\mk698\extraction\vs2012_update4\VS2012.4.exe
app2_setup_argument = /passive /norestart
app2_reg_path = SOFTWARE\Wow6432Node\Microsoft\DevDiv\vc\Servicing\11.0\CompilerCore\1033
app2_reg_type = local_machine
app2_reg_value = 11.0.61030
app2_reg_name = UpdateVersion
app2_reg_compare = eq

app3_name = SSI Test Executive 6.42.1 (v1.0.0)
app3_setup_file = c:\windows\system32\msiexec.exe
app3_setup_argument = /i "{user_temp_folder}\mk698\extraction\SSI_Test_Exec_v6_42_1\win32\SSI Test Executive 6.42.1.msi" /passive /norestart ALLUSERS{equal_sign}1
app3_reg_display_name = SSI Test Executive 6.42.1
app3_reg_type = local_machine
app3_reg_value = 1.0.0
app3_reg_name = DisplayVersion
app3_reg_compare = eq

app4_name = ActivePerl 5.8.8 Build 817
app4_setup_file = c:\windows\system32\msiexec.exe
app4_setup_argument = /i "{user_temp_folder}\mk698\extraction\ActivePerl_v5_8_8\ActivePerl-5.8.8.817-MSWin32-x86-257965.msi" /passive /norestart
app4_reg_display_name = ActivePerl 5.8.8 Build 817
app4_reg_type = local_machine
app4_reg_value = 5.8.817
app4_reg_name = DisplayVersion
app4_reg_compare = eq

app5_name = Windows Software Development Kit for Windows 8.1
app5_setup_file = {user_temp_folder}\mk698\extraction\WinSDK_v8_1\sdksetup.exe
app5_setup_argument = /quiet /norestart
app5_reg_display_name = Windows Software Development Kit
app5_reg_type = local_machine
app5_reg_value = 8.100.26936
app5_reg_name = DisplayVersion
app5_reg_compare = eq
app5_reboot_computer_at_completion = yes

; needed for National Instrument Drivers
app6_name = Microsoft .NET Framework 4.6.2
app6_setup_file = {user_temp_folder}\mk698\extraction\DotNet_Framework_4_6_2\NDP462-KB3151800-x86-x64-AllOS-ENU.exe
app6_setup_argument = /passive /norestart
app6_reg_display_name = Microsoft .NET Framework 4.6.2
app6_reg_type = local_machine
app6_reg_value = 4.6
app6_reg_name = DisplayVersion
app6_reg_compare = gte

; app61_name = NI LabWindows/CVI Runtime (v. 17)
; app61_setup_file = {user_temp_folder}\mk698\extraction\NI_LabWindows_CVI_Runtime_v17\setup.exe
; app61_setup_argument = /qb /r:n /AcceptLicenses yes
; app61_reg_display_name = NI LabWindows/CVI SxS Runtime 2017
; app61_reg_type = local_machine
; app61_reg_value = 17
; app61_reg_name = DisplayVersion
; app61_reg_compare = gte
; app61_setup_reboot_computer = yes

app62_name = NI LabWindows/CVI (v. 17)
app62_setup_file = {user_temp_folder}\mk698\extraction\NI_LabWindows_CVI_v17\Distributions\CVI\setup.exe
app62_setup_argument = "{app62_setup_file}\specfile.txt" /qb /r:n /AcceptLicenses yes
app62_reg_display_name = NI LabWindows/CVI 2017
app62_reg_type = local_machine
app62_reg_value = 17
app62_reg_name = DisplayVersion
app62_reg_compare = gte
app62_reboot_computer_at_completion = yes

app7_name = NI 488.2 (v. 17)
app7_setup_file = {user_temp_folder}\mk698\extraction\NI_4882_v17\setup.exe
app7_setup_argument = /qb /r:n /AcceptLicenses yes
app7_reg_display_name = NI-488.2 17.0
app7_reg_type = local_machine
app7_reg_value = 17
app7_reg_name = DisplayVersion
app7_reg_compare = gte
app7_reboot_computer_at_completion = yes

app8_name = NI VXI (v. 16)
app8_setup_file = {user_temp_folder}\mk698\extraction\NI_VXI_v17\setup.exe
app8_setup_argument = /qb /r:n /AcceptLicenses yes
app8_reg_display_name = NI-VXI 16.0
app8_reg_type = local_machine
app8_reg_value = 16
app8_reg_name = DisplayVersion
app8_reg_compare = gte
app8_reboot_computer_at_completion = yes

app9_name = NI IVI Compliance Package (v. 17)
app9_setup_file = {user_temp_folder}\mk698\extraction\NI_IVI_Compliance_Package_v17\setup.exe
app9_setup_argument = /qb /r:n /AcceptLicenses yes
app9_reg_display_name = NI IVI Compliance Package 17.0
app9_reg_type = local_machine
app9_reg_value = 17
app9_reg_name = DisplayVersion
app9_reg_compare = gte
app9_reboot_computer_at_completion = yes

app10_name = NI Serial (v. 17)
app10_setup_file = {user_temp_folder}\mk698\extraction\NI_Serial_v17\setup.exe
app10_setup_argument = /qb /r:n /AcceptLicenses yes
app10_reg_display_name = NI-Serial Runtime 17.0
app10_reg_type = local_machine
app10_reg_value = 17
app10_reg_name = DisplayVersion
app10_reg_compare = gte

app11_name = NI Switch (v. 17)
app11_setup_file = {user_temp_folder}\mk698\extraction\NI_Switch_v17\setup.exe
app11_setup_argument = /qb /r:n /AcceptLicenses yes
app11_reg_display_name = NI-SWITCH 17.0
app11_reg_type = local_machine
app11_reg_value = 17
app11_reg_name = DisplayVersion
app11_reg_compare = gte
app11_reboot_computer_at_completion = yes

app12_name = Sealevel SeaMAX (v3.04)
app12_setup_file = {user_temp_folder}\mk698\extraction\SeaMAX_v3_04\sx03040001.exe
app12_setup_argument = -s -f1{user_temp_folder}\mk698\extraction\SeaMAX_v3_04\seamax_install_params.iss
app12_reg_display_name = SeaMAX
app12_reg_type = local_machine
app12_reg_value = 3.4.0.1
app12_reg_name = DisplayVersion
app12_reg_compare = gte

;app2_name = Sealevel SeaMACV5 (v5.0.23)
;app2_setup_file = {user_temp_folder}\mk698\extraction\SeaMACV5_v5_0_23\SM050023.exe
; app2_setup_argument = -s -f1{user_temp_folder}\mk698\extraction\SeaMACV5_v5_0_23\seamac_install_params.iss
; app2_reg_display_name = SeaMAC V5
; app2_reg_type = local_machine
; app2_reg_value = 5.0.23
; app2_reg_name = DisplayVersion
; app2_reg_compare = eq

; app13_name = Sealevel SeaMAC (v5.0.24)
; app13_setup_file = {user_temp_folder}\mk698\extraction\SeaMAC_v5_0_24\SM050024RC4.exe
; app13_setup_argument = /S /v/qn
; app13_reg_display_name = SeaMAC
; app13_reg_type = local_machine
; app13_reg_value = 5.0.24
; app13_reg_name = DisplayVersion
; app13_reg_compare = eq

app13_name = Sealevel SeaMAC (v6)
app13_setup_file = {user_temp_folder}\mk698\extraction\SeaMAC_v6\SM060000.exe
app13_setup_argument = /S /v/qn
app13_reg_display_name = SeaMAC
app13_reg_type = local_machine
app13_reg_value = 6.0
app13_reg_name = DisplayVersion
app13_reg_compare = eq

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; This section is used to run various applications or scripts
; 
; Possible keys:
;    app#_description (OPTIONAL. Describe the purpose of running this application)
;    app#_path (REQUIRED.  Full path and name of the application to be run)
;         - the path can take advantage of using macros. Look below for the available macros
;    app#_is_console (REQUIRED. Specify if the application is a console application (i.e. DOS application)
;         - value is either true/false
;    app#_argument (OPTIONAL. Arguments to be passed to the application)
;         - sometimes the argument can include paths.  Some programs will require absolute path while others allow relative paths
;           the user has the option of specifying relative paths in the argument and have the program resolve them at runtime
;           In order to make this possible, the user will have to specify a new key for each path to be resolved in the argument
;         - the argument can specify {app#_path} 
;         - the argument can make use of macros. Look below for the available macros
;         - the actual path being inserted in the argument will not have backslash at the end of the path
;         - sometimes, the argument maybe include equal sign in them, but we can't have equal sign
;           in the value of the INI.  To make it possible, if an equal sign is needed in the ini file
;           use <eq> in place of =
;
;    app#_argument_path# - for each of these keys, there must be a corresponding {app#_argument_path#} defined in the value of app#_argument
;   
; Available Path macros:
;    {user_desktop}, {user_temp_folder}, {cd_drive}
;
; Example 1:
;     app1_path = C:\ReleaseIB_Production\app.exe
;     app1_arguments = -role Datasrv -suite LSPS3 -production
;
; Example 2:
;     app1_description = Extracting ActivePerl archive
;     app1_path = ..\..\..\..\..\Deployment\SM3_IB_Auto_Setup\Repository\software\7-Zip\7z.exe
;     app1_argument_path1 = ..\..\..\..\..\Deployment\SM3_IB_Auto_Setup\Repository\software\
;     app1_argument = x "{app1_argument_path1}\Perl.7z" -o"{user_temp_folder}" -y
;
; Example 3:
;     app1_description = Extracting ActivePerl archive
;     app1_path = {cd_drive}\7-Zip\7z.exe
;     app1_argument_path1 = ..\..\..\..\..\Deployment\SM3_IB_Auto_Setup\Repository\software\
;     app1_argument = x "{app1_argument_path1}\Perl.7z" -o"{user_temp_folder}" -y
; ******************************************************************************************************************************
[Extract_Software_Suite]
app1_description = Extracting MK698 software suite
app1_path = {user_temp_folder}\mk698\7-Zip\7z.exe
app1_is_console = true
app1_argument = x "{user_temp_folder}\mk698\MK698Software.7z.001" -o"{user_temp_folder}\mk698\extraction" -aos -y

[Extract_Visual_Studio_Archives]
app1_description = Extracting Visual Studio 2012 Archive
app1_cd_label = Visual Studio 2012
app1_path = {cd_drive}\7-Zip\7z.exe
app1_is_console = true
app1_argument = x "{cd_drive}\msvs2012.7z" -o"{user_temp_folder}\mk698\extraction\vs2012" -aos -y

app2_description = Extracting Visual Studio 2012 Update 4 Archive
app2_cd_label = Visual Studio 2012
app2_path = {cd_drive}\7-Zip\7z.exe
app2_is_console = true
app2_argument = x "{cd_drive}\msvs2012_update4.7z" -o"{user_temp_folder}\mk698\extraction\vs2012_update4" -aos -y

[Import_Trusted_Publisher_Certificates]
app1_description = Importing trusted publisher certificate for SeaLevel SeaMAX Driver
app1_path = c:\windows\system32\certutil.exe
app1_is_console = true
app1_argument = -addstore "TrustedPublisher" "{user_temp_folder}\mk698\extraction\SeaMax_v3_04\pubcert.cer"

app2_description = Importing trusted publisher certificate for SeaLevel SeaMAC Driver
app2_path = c:\windows\system32\certutil.exe
app2_is_console = true
app2_argument = -addstore "TrustedPublisher" "{user_temp_folder}\mk698\extraction\SeaMAC_v6\pubcert.cer"

[Shut_Down_National_Instrument_Processes]
app1_description = Killing process nierserver.exe
app1_path = c:\windows\system32\taskkill.exe
app1_is_console = true
app1_argument = /f /im nierserver.exe

;
; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; Modify Network Adapter's settings
;
; Possible keys:
;     nic#_pci_location ( REQUIRED.)
;         - the value must be in the form of: #,#,# ( bus, device, function)
;            i.e.: 0,25,0 - bus = 0, device = 25, function = 0
;     nic#_adapter_name (OPTIONAL. Set the name of the network adapter)
;     nic#_ip_and_subnet (OPTIONAL. Set ip address and subnet mask of network adapter)
;         - the value must be in the form of: #.#.#.#,#.#.#.#
;           i.e.: 192.168.0.10,255.255.255.0
;     nic#_default_gateway# (OPTIONAL. Default gateway of the network adapter)
;         - the value must be in the form of: #.#.#.#
;           i.e.: 192.168.0.1
;     nic#_dns_servers (OPTIONAL. Set DNS servers of network adapter)
;         - the value must be in the form of: #.#.#.#,#.#.#.#
;           i.e.: 192.168.0.10,192.168.0.11
;     nic#_link_speed (OPTIONAL. Set the link speed of the network adapter)
;         - Before using this option. Make sure that the network adapter supports link speed setting
;           This is really a registry change for the network adapter.  The registry name is *SpeedDuplex
;           The value for *SpeedDuplex is usually a digit ranging from 0-5.
;           Here's an example:
;              0 - Auto Negotiate
;              1 - 10Mbps Half Duplex
;              2 - 10Mbps Full Duplex
;              3 - 100Mpbs Half Duplex
;              4 - 100Mbps Full Duplex
;              6 - 1Gpbs Full Duplex
;           There's no 5 defined because there's no 1Gpbs Half Duplex
;           IMPORTANT: The above example was taken from a Intel network card.  These numbers could
;           mean something else different from one network card to the next. Refer to the network
;           adapter's manufacturer manual for the actual numbers and their meanings.
;
;     nic#_enable_dhcp (OPTIONAL. Set network adapter to use DHCP)
;         - the value must be either: true/false
;         - if this is set to true, all the other settings above, except link speed, will be ignored
;           this will effectively set IP and DNS Servers to be obtained automatically
;
;    Example 1:
;      nic1_pci_location = 0,25, 0
;      nic1_link_speed = 2
;      nic1_adapter_name = My Connection
;      nic1_enable_dhcp = false
;      nic1_ip_and_subnet = 192.168.0.10 , 255.255.255.0
;      nic1_default_gateway = 192.168.0.1
;      nic1_dns_servers = 192.168.0.5, 192.168.0.6
;
; ******************************************************************************************************************************
[Network_Interface_Cards]



; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; This section is used to remove/delete various files or folders
; 
; Possible keys:
;    item (REQUIRED.  This is either a file or folder to be removed)
;
; If the item is a folder, user has the option to specify whether or not to delete the folder recursively. To specify to delete
; a folder recursively, add the word "recursive" right after the path separated by a comma
;    
; The path can also include user desktop path or temporary folder
;    for desktop path, use macro: {user_desktop}
;    for temporary folder, use macro: {user_temp_folder}
;    
; Example 1 - Delete a file:
;   item = A:\test\test.hpp 
;
; Example 2 - Delete a folder recursively:
;   item = A:\test\test2,recursive
;
; Example 3 - Delete only the files contained in the folder:
;   item = A:\test\test2
;
; Example 4 - Delete a folder on the user's desktop:
;   item = {user_desktop}\test2
;
; Example 5 - Delete a folder in the user's temporary folder
;   item = {user_temp_folder}\test2
; ******************************************************************************************************************************
[Files_Folders_Removal]
item = {user_temp_folder}\mk698,recursive

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; This section is used to copy various packages of files from a source location to destination location
; Each XML file contains at least 1 package of files. Each file has a source and destination locations
; Key name can be anything
; Value must a be a path to a XML file
; 
; example 1:
;    file_package = package1.xml
; ******************************************************************************************************************************
[DVD_Software_Suite]
file_package = .\PackagesFromCD.xml

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; Specify all the paths to be created
; Possible keys:
;     path (REQUIRED. Valid path to be created)
;
; example:
;    path1 = C:\DataIIB\data\Block_IB\CV
;    path2 = C:\DataIIB\data\Block_IB\General\Logs
; ******************************************************************************************************************************
[Paths_Creation]
path = C:\ReleaseIB_Engineering\
path = C:\ReleaseIB_Production\
path = C:\DataIB\data\Block_IB\CV
path = C:\DataIB\data\Block_IB\General\Logs
path = C:\DataIB\data\Block_IB\General\Scripts
path = C:\DataIB\data\Block_IB\General\Temp\SingleStepScript

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; To share a folder, must provide path to a folder.
; Share names are optional as the folder name will be used as the default share name. 
; Any share name defined here will be used as additional share name for its corresponding folder
; The # in "path#" must match in both keys. A folder can have more than one share name. 
; Possible keys:
;     path# (OPTIONAL. A valid path to be shared)
;     path#_additional_share_names (OPTIONAL. Additional share names associated with a path)
;           - Define one or more shares names separated by comma
;     path#_allowed_accounts ( Windows Built-In, local or domain accounts to be added to the permission list for this share with Full Control )
;           - if this is not defined, this network share will be accessible to everyone with Full Control
;           - if defined, the value must be in the following format: 
;             User1,User2,User3 (if more than one account is defined, separate by comma)
;             The account name must either be a built-in window account or local/domain account
;             if the account name is a built-in window account, it can only be one of the following:
;                   - everyone, authenticated users 
;             if the account name is a local/domain account it must be in this format: DOMAIN\UserAccountName
;
; example:
;     path1 = C:\DataIIB\
;     path1_additional_share_names = DataIIB1, DataIIB2
;     path1_allowed_accounts = Authenticated Users,US\1117637
;     path2 = C:\DataIA
;     path2__additional_share_names = DataIA_1
;     path2_allowed_accounts = MYCOMPUTERNAME\Duc
;     path3 = C:\DataIC
; ******************************************************************************************************************************
[Paths_Sharing]
path1 = C:\ReleaseIB_Engineering\
path2_additional_share_names = Data
path2 = C:\DataIB\
path3_additional_share_names = Release
path3 = C:\ReleaseIB_Production\


; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; Create windows system environment variables
; the key would be the system environment variable name.
;
; Note:
;    Any key defined here will have its valued replaced, except for "path" because path is a window's system environment variable
;    If a key's name is path, the value specified will be appendeding to existing value
;    
;    path can have one or more values separated by commas
;    Example:
;       path = C:\folder1
;       path = C:\folder1, C:\folder2
; ******************************************************************************************************************************
[Env_Variables]
SM3_SEEKER = C:\Development\GUTS\SM3
; the address of the computer where all the data of each test is saved before being pushed to the network
SM3_SKR_SERVER = localhost
; the address of the computer where all test data are pushed to after testing
SM3_SKR_NETWORK = localhost
path = C:\Perl\bin\

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; Add/Modify or Delete registry's key
;
; Possible keys:
;     reg#_action ( REQUIRED. What action to perform)
;         - there are only 2 actions ( add/modify, delete)
;     reg#_path (REQUIRED. Registry folder path, not including valuename)
;     reg#_type (REQUIRED)
;         - there are only three options for this key ( classes_root, current_user, local_machine)
;     reg#_name_value_pair# (Optional.  Registry name values and their names)
;         - the registry key defined by registry path can have multiple value names and their associated values
;         - Format of the value: [name:***,value:***,type:***] - replace *** with actual text
;                - name can be anything
;                - value is either numeric or alphanumeric depending on type
;                - type can only be 1 of 4: string, multi_string, dword, qword
;                  If type is dword or qword then value can only be numeric
;                  If type is multi-string, then format of the value must be:
;                       [name:***,:value:***:value:***...,type:multi_string]
;
;    Example 1:
;         reg1_action = add/modify
;         reg1_path = SOFTWARE\MySoftware\
;         reg1_type = local_machine
;         reg1_name_value_pair1 = [name:Version,value:3,type:string]
;         reg1_name_value_pair2 = [name:Version2,:value:3:value:34,type:multi-string]
;
;    Example 2:
;         reg1_action = add/modify
;         reg1_path = SOFTWARE\Duc\Sup
;         reg1_type = local_machine
;
;    Example3:
;         reg1_action = delete
;         reg1_path = SOFTWARE\Duc\Sup
;         reg1_type = local_machine
;         reg1_name_value_pair1 = [name:Version]
;
;    Example4:
;         reg1_action = delete
;         reg1_path = SOFTWARE\Duc\Sup
;         reg1_type = local_machine
; ******************************************************************************************************************************
[Windows_Registry]
;reg1_action = delete
;reg1_path = SOFTWARE\Duc\
;reg1_type = local_machine
;reg1_name_value_pairs = Versionn[:]3[,]ginrl[:]boy

; ******************************************************************************************************************************
; THIS SECTION IS OPTIONAL
; ******************************************************************************************************************************
; Create shortcuts on the user's desktop
;
; example:
;   shortcut1_name = Data Server
;   shortcut1_target_path = C:\ReleaseIB_Production\app.exe
;   shortcut1_arguments = -role datasrv -suite lsps3 -production
; ******************************************************************************************************************************
[Windows_Shortcuts]
shortcut1_name = Data Server
shortcut1_target_path = C:\ReleaseIB_Production\app.exe
shortcut1_arguments = -role datasrv -suite lsps3 -production -no_hw

shortcut2_name = Guts Server
shortcut2_target_path = C:\ReleaseIB_Production\app.exe
shortcut2_arguments = -role gutssrv -suite lsps3 -production -no_hw

shortcut3_name = Guts Auto
shortcut3_target_path = C:\ReleaseIB_Production\app.exe
shortcut3_arguments = -role auto1b -suite lsps3 -production -no_hw

shortcut4_name = Guts Manual
shortcut4_target_path = C:\ReleaseIB_Production\app.exe
shortcut4_arguments = -role gutsman -suite lsps3 -production -no_hw

