forked from Keeper-Security/git-ssh-sign
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Update-GitConfig.ps1
27 lines (27 loc) · 1.04 KB
/
Update-GitConfig.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
<#
.SYNOPSIS
Configure Git to use an SSH Key in Keeper Secrets Manager to sign commits
#>
param (
# Keeper Secrets Manager One-time Access Token"
[Parameter(Mandatory)][string]$AccessToken,
[string]$ConfigurationDirectory = "${env:USERPROFILE}\.config\keeper",
[string]$Git = (Get-Command 'git' | Select-Object -ExpandProperty Source),
[string]$Go = (Get-Command 'go' | Select-Object -ExpandProperty Source),
[string]$Ksm = (Get-Command 'ksm' | Select-Object -ExpandProperty Source)
)
#region Initialize KSM configuration
& $Ksm init default --plain $AccessToken | Set-Variable ConfigJson
if (!(Test-Path $ConfigurationDirectory)) {
New-Item -Type Directory $ConfigurationDirectory
}
Set-Content "${ConfigurationDirectory}\ssh-sign.json" -Value $ConfigJson
#endregion
#region build ssh-sign.exe
foreach ($Command in (Get-ChildItem -Path .\cmd)) {
& $Go build -o "$($Command.Name).exe" $Command
}
#endregion
#region Configure Git to use ssh-sign.exe
& $Git config --global gpg.ssh.program "$(Get-Item 'ssh-sign.exe')"
#endregion