PSGraylog/Install.ps1

15 lines
1.1 KiB
PowerShell

# Defaults to the first module path, however you can change this to any path you wish (provided it's in your $PSModulePath)
$ModulePath = $env:PSModulePath.Split(";")[0]
if (-NOT (Test-Path $ModulePath)) { $null = New-Item -Path $ModulePath -ItemType Directory } # Create the module path if it doesn't exist (might happen on brand new installs)
$RequiredModules = @("Microsoft.PowerShell.SecretStore","Microsoft.PowerShell.SecretManagement").Where{ -NOT (Get-Module $_ -ListAvailable) -as [bool] }
$RequiredModules.ForEach{Install-Module $_ }
$GitURI = "https://git.wnd.sh/n/PSGraylog/archive/main.zip"
$OutputPath = "$ModulePath/PSGraylog"
Invoke-WebRequest $GitURI -OutFile "$OutputPath.zip" # Download the zip archive to the module path
Expand-Archive "$OutputPath.zip" $OutputPath # Extract the zip archive to the module path
Move-Item "$OutputPath/PSGraylog/*" $OutputPath # The archive nests the files, so we need to move the up a level
Remove-Item "$OutputPath/PSGraylog" # Remove the excess PSGraylog directory (it's empty)
Remove-Item "$OutputPath.zip" # Remove the archive