diff options
| -rw-r--r-- | crates/atuin/src/shell/atuin.ps1 | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/crates/atuin/src/shell/atuin.ps1 b/crates/atuin/src/shell/atuin.ps1 index f1caee86..501c1145 100644 --- a/crates/atuin/src/shell/atuin.ps1 +++ b/crates/atuin/src/shell/atuin.ps1 @@ -51,9 +51,20 @@ New-Module -Name Atuin -ScriptBlock { $duration = (Get-History -Count 1).Duration.Ticks * 100 $durationArg = if ($duration) { "--duration=$duration" } else { $null } - atuin history end --exit=$exitCode $durationArg -- $script:atuinHistoryId | Out-Null + # Fire and forget the atuin history end command to avoid blocking the shell during a potential sync. + $process = New-Object System.Diagnostics.Process + $process.StartInfo.FileName = "atuin" + $process.StartInfo.Arguments = "history end --exit=$exitCode $durationArg -- $script:atuinHistoryId" + $process.StartInfo.UseShellExecute = $false + $process.StartInfo.CreateNoWindow = $true + $process.StartInfo.RedirectStandardInput = $true + $process.StartInfo.RedirectStandardOutput = $true + $process.StartInfo.RedirectStandardError = $true + $process.Start() | Out-Null + $process.StandardInput.Close() + $process.BeginOutputReadLine() + $process.BeginErrorReadLine() - $global:LASTEXITCODE = $exitCode $script:atuinHistoryId = $null } |
