diff --git a/.gitignore b/.gitignore index afb8ea0..3f3d650 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,8 @@ /Server/ /Agent/ /Pyinstaller_Temp/ -Borealis-Server.spec -/dist/ \ No newline at end of file +/dist/ +Borealis-Agent.exe +/Data/Agent/Packaging_Data/ +Borealis-Server.exe +/Data/Server/Packaging_Data/ \ No newline at end of file diff --git a/Data/Agent/Borealis.ico b/Data/Agent/Borealis.ico new file mode 100644 index 0000000..051a9a0 Binary files /dev/null and b/Data/Agent/Borealis.ico differ diff --git a/Data/Agent/Package_Borealis-Agent.ps1 b/Data/Agent/Package_Borealis-Agent.ps1 index e7bb078..5cebec5 100644 --- a/Data/Agent/Package_Borealis-Agent.ps1 +++ b/Data/Agent/Package_Borealis-Agent.ps1 @@ -1 +1,53 @@ -Placeholder Packaging Script \ No newline at end of file +#////////// PROJECT FILE SEPARATION LINE ////////// CODE AFTER THIS LINE ARE FROM: /Agent/Package_Borealis-Agent.ps1 + +# Configuration +$packagingDir = "Packaging_Data" +$venvDir = "$packagingDir\Pyinstaller_Virtual_Environment" +$distDir = "$packagingDir\dist" +$buildDir = "$packagingDir\build" +$specPath = "$packagingDir" +$agentScript = "borealis-agent.py" +$outputName = "Borealis-Agent" +$finalExeName = "$outputName.exe" +$requirementsPath = "requirements.txt" +$iconPath = "..\Borealis.ico" + +# Ensure Packaging_Data directory exists +if (-Not (Test-Path $packagingDir)) { + New-Item -ItemType Directory -Path $packagingDir | Out-Null +} + +# Set up virtual environment +if (-Not (Test-Path "$venvDir\Scripts\Activate.ps1")) { + Write-Host "[SETUP] Creating virtual environment at $venvDir" + python -m venv $venvDir +} + +# Activate virtual environment +Write-Host "[INFO] Activating virtual environment" +. "$venvDir\Scripts\Activate.ps1" + +# Install agent dependencies from requirements file +Write-Host "[INFO] Installing agent dependencies from $requirementsPath" +pip install --upgrade pip > $null +pip install -r $requirementsPath > $null + +# Install PyInstaller +Write-Host "[INFO] Installing PyInstaller" +pip install pyinstaller > $null + +# Clean previous build artifacts +Write-Host "[INFO] Cleaning previous build artifacts" +Remove-Item -Recurse -Force $distDir, $buildDir, "$specPath\$outputName.spec" -ErrorAction SilentlyContinue + +# Run PyInstaller to create single-file executable with custom icon +Write-Host "[INFO] Running PyInstaller with icon $iconPath" +pyinstaller --onefile --icon "$iconPath" --noconfirm --name $outputName --distpath $distDir --workpath $buildDir --specpath $specPath $agentScript + +# Copy resulting executable to Agent folder +if (Test-Path "$distDir\$finalExeName") { + Copy-Item "$distDir\$finalExeName" ".\$finalExeName" -Force + Write-Host "[SUCCESS] Agent packaged at .\$finalExeName" +} else { + Write-Host "[FAILURE] Packaging failed." -ForegroundColor Red +} diff --git a/Data/Server/Borealis.ico b/Data/Server/Borealis.ico new file mode 100644 index 0000000..051a9a0 Binary files /dev/null and b/Data/Server/Borealis.ico differ diff --git a/Prerequisites-Installer.ps1 b/Install-Prerequisites.ps1 similarity index 100% rename from Prerequisites-Installer.ps1 rename to Install-Prerequisites.ps1 diff --git a/borealis_directory_structure.txt b/borealis_directory_structure.txt new file mode 100644 index 0000000..c2d0191 Binary files /dev/null and b/borealis_directory_structure.txt differ