Install.ps1
[CmdletBinding()] Param( [Parameter(Position=1, Mandatory=$false)] $Path ) $ModuleName = 'Posh-Vault' $ModuleVersion = '0.1.2' $GithubRoot = "https://raw.githubusercontent.com/gildas/posh-vault/$ModuleVersion" if ([string]::IsNullOrEmpty($Path)) { $my_modules = Join-Path ([Environment]::GetFolderPath('MyDocuments')) 'WindowsPowerShell\Modules' $module_paths = @($env:PSModulePath -split ';') if (! (Test-Path $my_modules)) { Write-Verbose "Creating Personal Powershell Module folder" New-Item -ItemType Directory -Path $my_modules -ErrorAction Stop | Out-Null } if ($module_paths -notcontains $my_modules) { Write-Verbose "Adding Personal Powershell Module folder to Module Search list" $env:PSModulePath = $my_modules + ';' + $env:PSModulePath [Environment]::SetEnvironmentVariable('PSModulePath', $env:PSModulePath, 'User') } $Path = Join-Path $my_modules $ModuleName } if (! (Test-Path $Path)) { Write-Verbose "Creating $ModuleName Module folder" New-Item -ItemType Directory -Path $Path -ErrorAction Stop | Out-Null } @( 'Get-VaultCredential.ps1', 'Set-VaultCredential.ps1', 'Remove-VaultCredential.ps1', 'LICENSE', 'VERSION', 'README.md', 'Posh-Vault.psd1', 'Posh-Vault.psm1' ) | ForEach-Object { Start-BitsTransfer -DisplayName "$ModuleName Installation" -Description "Installing $_" -Source "$GithubRoot/$_" -Destination $Path -ErrorAction Stop } |