70 lines
2.9 KiB
PowerShell
70 lines
2.9 KiB
PowerShell
<#
|
|
.DESCRIPTION
|
|
This script is used to add/remove the installation path of Minikube in the PATH Environment variable as part of installation/uninstallation of Minikube.
|
|
The script assumes that the PATH exists before running.
|
|
|
|
.PARAMETER Add
|
|
This is a Switch parameter which tells the script to ADD the path supplied to the System's PATH Environment variable.
|
|
|
|
.PARAMETER Remove
|
|
This is a Switch parameter which tells the script to REMOVE the path supplied from the System's PATH Environment variable.
|
|
|
|
.PARAMETER Path
|
|
This parameter accepts a string which needs to be added/removed from the System's PATH Environment Variable.
|
|
#>
|
|
|
|
param(
|
|
[cmdletbinding()]
|
|
|
|
# This parameter dictates if the path needs to be added
|
|
[Parameter(Mandatory=$false,ParameterSetName="EnvironmentVariableAddOperation")]
|
|
[switch]
|
|
$Add,
|
|
|
|
# This parameter dictates if the path needs to be removed
|
|
[Parameter(Mandatory=$false,ParameterSetName="EnvironmentVariableRemoveOperation")]
|
|
[switch]
|
|
$Remove,
|
|
|
|
# This parameter tells us the path inside the $PATH Environment Variable for which the operation needs to be performed
|
|
[Parameter(Mandatory=$true)]
|
|
[string]
|
|
$Path
|
|
)
|
|
|
|
$currentSystemPath = [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine)
|
|
|
|
try {
|
|
if ($Add) {
|
|
Write-Output "Path needs to be added."
|
|
Write-Output "Checking if the given path already exists or not"
|
|
|
|
if ($currentSystemPath -match [Regex]::Escape($Path)) {
|
|
Write-Output "The provided path already exists in the system. Exiting now."
|
|
} else {
|
|
Write-Output "The given path was not found. Adding it now."
|
|
if ($currentSystemPath.EndsWith(";")) {
|
|
$newSystemPath = $currentSystemPath + $Path.Trim() + ";"
|
|
} else {
|
|
$newSystemPath = $currentSystemPath + ";" + $Path.Trim() + ";"
|
|
}
|
|
[Environment]::SetEnvironmentVariable("Path", $newSystemPath, [EnvironmentVariableTarget]::Machine)
|
|
Write-Output "Path has been added successfully."
|
|
}
|
|
} else {
|
|
Write-Output "Path needs to be added."
|
|
Write-Output "Checking if the given path already exists or not"
|
|
|
|
if ($currentSystemPath -match [Regex]::Escape($Path)) {
|
|
Write-Output "The provided path exists in the system. Removing now."
|
|
$newSystemPath = $currentSystemPath.Replace(($Path.Trim() + ";"), "")
|
|
[Environment]::SetEnvironmentVariable("Path", $newSystemPath, [EnvironmentVariableTarget]::Machine)
|
|
} else {
|
|
Write-Output "The given path was not found. Exiting now."
|
|
}
|
|
}
|
|
}
|
|
catch {
|
|
Write-Output "[Error]:: There was an error while execution. Please see the details below. Ensure that the script is running with administrator privileges."
|
|
Write-Output $_
|
|
} |