summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/hasura/README.md9
-rw-r--r--plugins/hasura/hasura.plugin.zsh13
2 files changed, 22 insertions, 0 deletions
diff --git a/plugins/hasura/README.md b/plugins/hasura/README.md
new file mode 100644
index 000000000..d7db9ed92
--- /dev/null
+++ b/plugins/hasura/README.md
@@ -0,0 +1,9 @@
+# Hasura plugin
+
+This plugin adds completion for [the Hasura CLI](https://hasura.io/docs/latest/hasura-cli/index/).
+
+To use it, add `hasura` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... hasura)
+```
diff --git a/plugins/hasura/hasura.plugin.zsh b/plugins/hasura/hasura.plugin.zsh
new file mode 100644
index 000000000..18254c43b
--- /dev/null
+++ b/plugins/hasura/hasura.plugin.zsh
@@ -0,0 +1,13 @@
+if (( ! $+commands[hasura] )); then
+ return
+fi
+
+# If the completion file does not exist, generate it and then source it
+# Otherwise, source it and regenerate in the background
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_hasura" ]]; then
+ hasura completion zsh --file "$ZSH_CACHE_DIR/completions/_hasura" >/dev/null
+ source "$ZSH_CACHE_DIR/completions/_hasura"
+else
+ source "$ZSH_CACHE_DIR/completions/_hasura"
+ hasura completion zsh --file "$ZSH_CACHE_DIR/completions/_hasura" >/dev/null &|
+fi