15bcada010887a519f70f8612c5750b396d49b9d

Author
StavShukrunRise <Stav.Shukrun@risecodes.com>
Committer
GitHub <noreply@github.com>
Date

Message

feat(pulumi): add plugin for Pulumi CLI (#13041)

Co-authored-by: Marc Cornellà <marc@mcornella.com>

Diff

 1diff --git a/plugins/pulumi/README.md b/plugins/pulumi/README.md
 2new file mode 100644
 3index 0000000000000000000000000000000000000000..4c771964bde24debb9a1605c2621a59079c1b4a6
 4--- /dev/null
 5+++ b/plugins/pulumi/README.md
 6@@ -0,0 +1,41 @@
 7+# Pulumi
 8+
 9+This is an **Oh My Zsh plugin** for the [**Pulumi CLI**](https://www.pulumi.com/docs/iac/cli/),
10+an Infrastructure as Code (IaC) tool for building, deploying and managing cloud infrastucture.
11+
12+This plugin provides:
13+
14+- 🚀 Short, intuitive aliases for common Pulumi commands
15+- 🎯 Auto-completion support for Pulumi
16+
17+To use it, add `pulumi` to the plugins array in your `.zshrc` file:  
18+
19+```zsh
20+plugins=(... pulumi)
21+```
22+
23+## ⚡ Aliases
24+
25+| Alias    | Command                | Description                   |
26+| -------- | ---------------------- | ----------------------------- |
27+| `pul`    | `pulumi`               | Shortcut for Pulumi CLI       |
28+| `pulcs`  | `pulumi config set`    | Set Pulumi configuration      |
29+| `puld`   | `pulumi destroy`       | Destroy all resources         |
30+| `pullog` | `pulumi logs -f`       | Tail Pulumi logs in real-time |
31+| `pulp`   | `pulumi preview`       | Show planned changes          |
32+| `pulr`   | `pulumi refresh`       | Refresh state from cloud      |
33+| `puls`   | `pulumi stack`         | Show stack details            |
34+| `pulsh`  | `pulumi stack history` | Show stack history            |
35+| `pulsi`  | `pulumi stack init`    | Initialize a new stack        |
36+| `pulsl`  | `pulumi stack ls`      | List available stacks         |
37+| `pulso`  | `pulumi stack output`  | Show stack outputs            |
38+| `pulss`  | `pulumi stack select`  | Switch stack                  |
39+| `pulu`   | `pulumi up`            | Deploy infrastructure         |
40+
41+## 🎯 Autocompletion
42+
43+If `pulumi gen-completion zsh` is available, this plugin **automatically loads Pulumi auto-completion**.
44+
45+## 🛠️ Contribution
46+
47+Feel free to open an issue or PR for improvements! 🚀
48diff --git a/plugins/pulumi/pulumi.plugin.zsh b/plugins/pulumi/pulumi.plugin.zsh
49new file mode 100644
50index 0000000000000000000000000000000000000000..70686017faa54cc885f121550aef21d68acb7b1e
51--- /dev/null
52+++ b/plugins/pulumi/pulumi.plugin.zsh
53@@ -0,0 +1,28 @@
54+if (( ! $+commands[pulumi] )); then
55+  return
56+fi
57+
58+# If the completion file doesn't exist yet, we need to autoload it and
59+# bind it to `pulumi`. Otherwise, compinit will have already done that.
60+if [[ ! -f "$ZSH_CACHE_DIR/completions/_pulumi" ]]; then
61+  typeset -g -A _comps
62+  autoload -Uz _pulumi
63+  _comps[pulumi]=_pulumi
64+fi
65+
66+pulumi gen-completion zsh >| "$ZSH_CACHE_DIR/completions/_pulumi" &|
67+
68+# Aliases
69+alias pul='pulumi'
70+alias pulcs='pulumi config set'
71+alias puld='pulumi destroy'
72+alias pullog='pulumi logs -f'
73+alias pulp='pulumi preview'
74+alias pulr='pulumi refresh'
75+alias puls='pulumi stack'
76+alias pulsh='pulumi stack history'
77+alias pulsi='pulumi stack init'
78+alias pulsl='pulumi stack ls'
79+alias pulso='pulumi stack output'
80+alias pulss='pulumi stack select'
81+alias pulu='pulumi up'