diff options
| -rw-r--r-- | crates/atuin/src/shell/atuin.bash | 3 | ||||
| -rw-r--r-- | crates/atuin/src/shell/atuin.fish | 3 | ||||
| -rw-r--r-- | crates/atuin/src/shell/atuin.nu | 3 | ||||
| -rw-r--r-- | crates/atuin/src/shell/atuin.ps1 | 3 | ||||
| -rw-r--r-- | crates/atuin/src/shell/atuin.xsh | 3 | ||||
| -rw-r--r-- | crates/atuin/src/shell/atuin.zsh | 3 |
6 files changed, 12 insertions, 6 deletions
diff --git a/crates/atuin/src/shell/atuin.bash b/crates/atuin/src/shell/atuin.bash index 18c943e2..a57b6801 100644 --- a/crates/atuin/src/shell/atuin.bash +++ b/crates/atuin/src/shell/atuin.bash @@ -12,9 +12,10 @@ else # (include guard) beginning of main content #------------------------------------------------------------------------------ __atuin_initialized=true -if [[ -z "${ATUIN_SESSION:-}" ]]; then +if [[ -z "${ATUIN_SESSION:-}" || "${ATUIN_SHLVL:-}" != "$SHLVL" ]]; then ATUIN_SESSION=$(atuin uuid) export ATUIN_SESSION + export ATUIN_SHLVL=$SHLVL fi ATUIN_STTY=$(stty -g) ATUIN_HISTORY_ID="" diff --git a/crates/atuin/src/shell/atuin.fish b/crates/atuin/src/shell/atuin.fish index 0288e13b..683b0fd7 100644 --- a/crates/atuin/src/shell/atuin.fish +++ b/crates/atuin/src/shell/atuin.fish @@ -1,5 +1,6 @@ -if not set -q ATUIN_SESSION +if not set -q ATUIN_SESSION; or test "$ATUIN_SHLVL" != "$SHLVL" set -gx ATUIN_SESSION (atuin uuid) + set -gx ATUIN_SHLVL $SHLVL end set --erase ATUIN_HISTORY_ID diff --git a/crates/atuin/src/shell/atuin.nu b/crates/atuin/src/shell/atuin.nu index 150309cb..c327ea11 100644 --- a/crates/atuin/src/shell/atuin.nu +++ b/crates/atuin/src/shell/atuin.nu @@ -8,8 +8,9 @@ use (if not ( (version).minor >= 103 ) { "compat" }) * -if 'ATUIN_SESSION' not-in $env { +if 'ATUIN_SESSION' not-in $env or ('ATUIN_SHLVL' not-in $env) or ($env.ATUIN_SHLVL != ($env.SHLVL? | default "")) { $env.ATUIN_SESSION = (random uuid -v 7 | str replace -a "-" "") + $env.ATUIN_SHLVL = ($env.SHLVL? | default "") } hide-env -i ATUIN_HISTORY_ID diff --git a/crates/atuin/src/shell/atuin.ps1 b/crates/atuin/src/shell/atuin.ps1 index 9215ad34..3ff4824a 100644 --- a/crates/atuin/src/shell/atuin.ps1 +++ b/crates/atuin/src/shell/atuin.ps1 @@ -30,8 +30,9 @@ if (!(Get-Module PSReadLine -ErrorAction Ignore)) { } New-Module -Name Atuin -ScriptBlock { - if (-not $env:ATUIN_SESSION) { + if (-not $env:ATUIN_SESSION -or $env:ATUIN_PID -ne $PID) { $env:ATUIN_SESSION = atuin uuid + $env:ATUIN_PID = $PID } $script:atuinHistoryId = $null diff --git a/crates/atuin/src/shell/atuin.xsh b/crates/atuin/src/shell/atuin.xsh index 0ea9514e..a80f29a2 100644 --- a/crates/atuin/src/shell/atuin.xsh +++ b/crates/atuin/src/shell/atuin.xsh @@ -5,8 +5,9 @@ from prompt_toolkit.filters import Condition from prompt_toolkit.keys import Keys -if "ATUIN_SESSION" not in ${...}: +if "ATUIN_SESSION" not in ${...} or ${...}.get("ATUIN_SHLVL", "") != ${...}.get("SHLVL", ""): $ATUIN_SESSION=$(atuin uuid).rstrip('\n') + $ATUIN_SHLVL = ${...}.get("SHLVL", "") @events.on_precommand def _atuin_precommand(cmd: str): diff --git a/crates/atuin/src/shell/atuin.zsh b/crates/atuin/src/shell/atuin.zsh index 562148d9..5a817209 100644 --- a/crates/atuin/src/shell/atuin.zsh +++ b/crates/atuin/src/shell/atuin.zsh @@ -25,8 +25,9 @@ else ZSH_AUTOSUGGEST_STRATEGY=("atuin") fi -if [[ -z "${ATUIN_SESSION:-}" ]]; then +if [[ -z "${ATUIN_SESSION:-}" || "${ATUIN_SHLVL:-}" != "$SHLVL" ]]; then export ATUIN_SESSION=$(atuin uuid) + export ATUIN_SHLVL=$SHLVL fi ATUIN_HISTORY_ID="" |
