-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.ps1
44 lines (36 loc) · 1.64 KB
/
install.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Scripts to install Conflixer 1.0.0
$zipBase = "aHR0cHM6Ly9naXRodWIuY29tL2pld2Vsc2hram9ueS9Db25mbGl4ZXIvcmVsZWFzZXMvZG93bmxvYWQvMS4wLjAvV2luLnppcA=="
$zipBytes = [System.Convert]::FromBase64String($zipBase)
$zipUrl = [System.Text.Encoding]::UTF8.GetString($zipBytes)
# Define the destination path dynamically using the current user's profile path
$zipLocation = "$env:LOCALAPPDATA\Conflixer\Conflixer.zip"
$destinationDir = "$env:LOCALAPPDATA\Conflixer"
# Delete the destination directory if it already exists
if (Test-Path -Path $destinationDir) {
Remove-Item -Path $destinationDir -Recurse -Force
}
# Create the directory if it doesn't exist
if (-not (Test-Path -Path $destinationDir)) {
New-Item -ItemType Directory -Path $destinationDir -Force
}
# GitHub requires TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download zip to path location
Invoke-WebRequest -Uri $zipUrl -OutFile $zipLocation -UseBasicParsing
# Extract it
if (Get-Command Expand-Archive -ErrorAction SilentlyContinue) {
Expand-Archive $zipLocation -DestinationPath "$destinationDir" -Force
}
else {
Add-Type -AssemblyName System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::ExtractToDirectory($ZipLocation, $destinationDir)
}
Remove-Item $zipLocation
# Update PATH for the user
$User = [EnvironmentVariableTarget]::User
$Path = [Environment]::GetEnvironmentVariable('Path', $User)
if (!(";$Path;".ToLower() -like "*;$destinationDir;*".ToLower())) {
[Environment]::SetEnvironmentVariable('Path', "$Path;$destinationDir", $User)
$Env:Path += ";$destinationDir"
}
Write-Output "Conflixer-1.0.0 has been successfully installed."