Browse Source

feat(rbw): add completion for `rbw` Bitwarden client (#10346)

Carlo Sala 2 years ago
parent
commit
543d6c0db1
3 changed files with 35 additions and 2 deletions
  1. 4 2
      .github/actions/spelling/expect.txt
  2. 12 0
      plugins/rbw/README.md
  3. 19 0
      plugins/rbw/rbw.plugin.zsh

+ 4 - 2
.github/actions/spelling/expect.txt

@@ -22,8 +22,8 @@ acr
 acroread
 acs
 acsc
-acss
 acsp
+acss
 actionformats
 Adamantium
 adb
@@ -312,6 +312,7 @@ bisd
 bitboxer
 bitbucket
 bitswap
+bitwarden
 blkio
 blockprofile
 blockprofilerate
@@ -3119,6 +3120,7 @@ rbenv
 rbenvdirs
 rbfu
 RBUFFER
+rbw
 rcfile
 Rchive
 rcs
@@ -4442,8 +4444,8 @@ zrr
 zrs
 zscore
 zse
-zsh'ed
 zsh
+zsh'ed
 zshaddhistory
 zshcmd
 zshcommands

+ 12 - 0
plugins/rbw/README.md

@@ -0,0 +1,12 @@
+# Bitwarden (unofficial) CLI plugin
+
+This plugin adds completion for [rbw](https://github.com/doy/rbw), an unofficial
+CLI for [Bitwarden](https://bitwarden.com).
+
+To use it, add `rbw` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... rbw)
+```
+
+This plugin does not add any aliases.

+ 19 - 0
plugins/rbw/rbw.plugin.zsh

@@ -0,0 +1,19 @@
+if (( ! $+commands[rbw] )); then
+  return
+fi
+
+# TODO: 2021-12-28: remove this bit of code as it exists in oh-my-zsh.sh
+# Add completions folder in $ZSH_CACHE_DIR
+command mkdir -p "$ZSH_CACHE_DIR/completions"
+(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath)
+
+
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it to `rbw`. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_rbw" ]]; then
+  declare -A _comps
+  autoload -Uz _rbw
+  _comps[rbw]=_rbw
+fi
+
+rbw gen-completions zsh >| "$ZSH_CACHE_DIR/completions/_rbw" &|