2024-07-25 14:30:07 +01:00
# 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 ]
2024-07-25 15:08:40 +01:00
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 $_ }
2024-07-25 14:30:07 +01:00
$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