Browse Source

Streamline bwl, cleanup

Kevin Heinicke 3 tuần trước cách đây
mục cha
commit
d025222518
3 tập tin đã thay đổi với 27 bổ sung3 xóa
  1. 2 0
      gitignore_global
  2. 1 1
      nvimrc
  3. 24 2
      zshrc

+ 2 - 0
gitignore_global

@@ -51,3 +51,5 @@ livepreview/
 .metals/
 .idea/
 .vscode
+
+**/.claude/settings.local.json

+ 1 - 1
nvimrc

@@ -35,7 +35,7 @@ Plug 'glench/vim-jinja2-syntax'
 Plug 'fatih/vim-go'
 Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
 Plug 'junegunn/fzf.vim'
-Plug 'ggandor/leap.nvim'
+Plug 'https://codeberg.org/andyg/leap.nvim.git'
 Plug 'towolf/vim-helm'
 Plug 'hashivim/vim-terraform'
 

+ 24 - 2
zshrc

@@ -41,8 +41,30 @@ alias imgcat="~/.dotfiles/imgcat"
 # Utility
 alias rm="nocorrect rm"
 
-# bitwarden: read session from keychain if it does not exist yet before running bitwarden
-alias bwl="export BW_SESSION=$(security find-generic-password -a $USER -s BW_SESSION -w) && echo \"bw session set\""
+# bitwarden: ensure a valid BW_SESSION, caching it in the macOS keychain.
+# reads cached session, validates, and unlocks/logs in only if needed.
+bwl() {
+  local svc="BW_SESSION"
+  export BW_SESSION="$(security find-generic-password -a "$USER" -s "$svc" -w 2>/dev/null)"
+
+  local bw_status
+  bw_status="$(bw status --session "$BW_SESSION" 2>/dev/null | jq -r '.status')"
+
+  case "$bw_status" in
+    unlocked)
+      echo "bw session valid" ;;
+    locked|"")
+      BW_SESSION="$(bw unlock --raw)" || return 1
+      security add-generic-password -U -a "$USER" -s "$svc" -w "$BW_SESSION"
+      export BW_SESSION
+      echo "bw session unlocked + cached" ;;
+    unauthenticated)
+      BW_SESSION="$(bw login --raw)" || return 1
+      security add-generic-password -U -a "$USER" -s "$svc" -w "$BW_SESSION"
+      export BW_SESSION
+      echo "bw session logged in + cached" ;;
+  esac
+}
 
 
 #