added run scripts for windows.
This commit is contained in:
79
run.ps1
Normal file
79
run.ps1
Normal file
@@ -0,0 +1,79 @@
|
||||
$AppName = "testium"
|
||||
|
||||
# 1. Set working directory to the script's location
|
||||
$PSScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||
Set-Location -Path $PSScriptRoot
|
||||
|
||||
$VenvPath = Join-Path $PSScriptRoot $(Join-Path "test\tmp\" ("$AppName"+"_venv"))
|
||||
$Requirements = Join-Path $PSScriptRoot "src\requirements.txt"
|
||||
$PythonScript = Join-Path $PSScriptRoot $(Join-Path "src" "$AppName")
|
||||
|
||||
Write-Host "[1/4] Searching for Python..." -ForegroundColor Cyan
|
||||
|
||||
# 2. Python detection (checks for 'python' then 'py' launcher)
|
||||
$PythonExe = Get-Command python.exe -ErrorAction SilentlyContinue
|
||||
if (-not $PythonExe) {
|
||||
$PythonExe = Get-Command py.exe -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
if (-not $PythonExe) {
|
||||
Write-Host "###########################################################" -ForegroundColor Red
|
||||
Write-Host "ERROR: Python was not detected on this system."
|
||||
Write-Host "Please install Python and check 'Add Python to PATH'."
|
||||
Write-Host "###########################################################" -ForegroundColor Red
|
||||
Pause
|
||||
exit
|
||||
}
|
||||
|
||||
Write-Host "[+] Python found: $($PythonExe.Source)" -ForegroundColor Green
|
||||
|
||||
# 3. Virtual Environment management
|
||||
if (-not (Test-Path $VenvPath)) {
|
||||
Write-Host "[2/4] Creating virtual environment..." -ForegroundColor Cyan
|
||||
& $PythonExe.Source -m venv $VenvPath
|
||||
} else {
|
||||
Write-Host "[2/4] Virtual environment already exists." -ForegroundColor Green
|
||||
}
|
||||
|
||||
# 4. Activation and Dependencies
|
||||
Write-Host "[3/4] Activating venv and updating dependencies..." -ForegroundColor Cyan
|
||||
$ActivateScript = Join-Path $VenvPath "Scripts\Activate.ps1"
|
||||
|
||||
# Execute the activation script
|
||||
& $ActivateScript
|
||||
|
||||
if ($env:VIRTUAL_ENV -and (Test-Path $env:VIRTUAL_ENV)) {
|
||||
Write-Host "[+] Verified: Running inside venv ($env:VIRTUAL_ENV)" -ForegroundColor Green
|
||||
} else {
|
||||
Write-Host "ERROR: Failed to activate virtual environment. Aborting install." -ForegroundColor Red
|
||||
pause
|
||||
exit
|
||||
}
|
||||
|
||||
# 5. Execution
|
||||
try {
|
||||
if (Test-Path $Requirements) {
|
||||
Write-Host "[+] Installing requirements..." -ForegroundColor Yellow
|
||||
python -m pip install --upgrade pip --quiet
|
||||
pip install -r $Requirements
|
||||
}
|
||||
if (-not (Test-Path $PythonScript)) {
|
||||
Write-Host "ERROR: File '$PythonScript' not found in $PSScriptRoot" -ForegroundColor Red
|
||||
}
|
||||
Write-Host "[4/4] Starting $AppName..." -ForegroundColor Cyan
|
||||
Write-Host "-----------------------------------------------------------" -ForegroundColor Gray
|
||||
python $PythonScript
|
||||
}
|
||||
catch {
|
||||
Write-Host "An error occurred during execution." -ForegroundColor Red
|
||||
}
|
||||
finally {
|
||||
# This runs even if the script fails
|
||||
if (Get-Command deactivate -ErrorAction SilentlyContinue) {
|
||||
deactivate
|
||||
Write-Host "Virtual environment deactivated." -ForegroundColor Gray
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "-----------------------------------------------------------" -ForegroundColor Gray
|
||||
Write-Host "$AppName execution finished."
|
||||
Reference in New Issue
Block a user