# Check if a virtual environment is active and deactivate it if necessary
if ($env:VIRTUAL_ENV) {
    # Write-Host "Deactivating the virtual environment to test for modules installed locally..."
    & deactivate
}

# Activate the virtual environment
# Write-Host "Activating the virtual environment..."
& .\venv\Scripts\activate
$env:PATH += ";$($MyInvocation.MyCommand.Path)\venv\Lib\site-packages\torch\lib"

# Debug info about system
# python.exe .\setup\debug_info.py

# Validate the requirements and store the exit code
python.exe .\setup\validate_requirements.py

# Check the exit code and stop execution if it is not 0
if ($LASTEXITCODE -ne 0) {
    Write-Host "Failed to validate requirements. Exiting script..."
    exit $LASTEXITCODE
}

# If the exit code is 0, read arguments from gui_parameters.txt (if it exists)
# and run the kohya_gui.py script with the command-line arguments
if ($LASTEXITCODE -eq 0) {
    $argsFromFile = @()
    if (Test-Path .\gui_parameters.txt) {
        $argsFromFile = Get-Content .\gui_parameters.txt -Encoding UTF8 | Where-Object { $_ -notmatch "^#" } | Foreach-Object { $_ -split " " }
    }
    $args_combo = $argsFromFile + $args
    # Write-Host "The arguments passed to this script were: $args_combo"
    python.exe kohya_gui.py $args_combo
}