summaryrefslogtreecommitdiff
path: root/home/.oh-my-zsh/plugins/toolbox
diff options
context:
space:
mode:
authornavewindre <boneyaard@gmail.com>2025-07-13 06:42:05 +0200
committernavewindre <boneyaard@gmail.com>2025-07-13 06:42:05 +0200
commit02f14a9cb152561a5e44062aac79f3b700403b40 (patch)
tree2db8ebda3b7f6f8777783aeb5c60018e6e1359d8 /home/.oh-my-zsh/plugins/toolbox
parentcbbdeb2f6b40a102a829f0c47cff052937231f00 (diff)
omz
Diffstat (limited to 'home/.oh-my-zsh/plugins/toolbox')
-rw-r--r--home/.oh-my-zsh/plugins/toolbox/README.md29
-rw-r--r--home/.oh-my-zsh/plugins/toolbox/toolbox.plugin.zsh16
2 files changed, 45 insertions, 0 deletions
diff --git a/home/.oh-my-zsh/plugins/toolbox/README.md b/home/.oh-my-zsh/plugins/toolbox/README.md
new file mode 100644
index 0000000..d957d9b
--- /dev/null
+++ b/home/.oh-my-zsh/plugins/toolbox/README.md
@@ -0,0 +1,29 @@
+# toolbox plugin
+
+Plugin for [toolbox](https://containertoolbx.org), a tool to use containerized CLI environments.
+
+To use it, add `toolbox` to your plugins array in your `.zshrc` file:
+
+```zsh
+plugins=(... toolbox)
+```
+
+## Prompt function
+
+This plugins adds `toolbox_prompt_info()` function. Using it in your prompt, it will show the toolbox
+indicator ⬢ (if you are running in a toolbox container), and nothing if not.
+
+You can use it by adding `$(toolbox_prompt_info)` to your `PROMPT` or `RPROMPT` variable:
+
+```zsh
+RPROMPT='$(toolbox_prompt_info)'
+```
+
+In the same way, it adds `toolbox_prompt_name()`, showing the name of the containerized environment.
+
+## Aliases
+
+| Alias | Command | Description |
+| ----- | --------------- | ------------------------------------ |
+| tbe | `toolbox enter` | Enters the toolbox environment |
+| tbr | `toolbox run` | Run a command in an existing toolbox |
diff --git a/home/.oh-my-zsh/plugins/toolbox/toolbox.plugin.zsh b/home/.oh-my-zsh/plugins/toolbox/toolbox.plugin.zsh
new file mode 100644
index 0000000..efe3836
--- /dev/null
+++ b/home/.oh-my-zsh/plugins/toolbox/toolbox.plugin.zsh
@@ -0,0 +1,16 @@
+function toolbox_prompt_info() {
+ [[ -f /run/.toolboxenv ]] && echo "⬢"
+}
+
+function toolbox_prompt_name() {
+ [[ -f /run/.containerenv ]] || return
+
+ # This command reads the /run/.containerenv file line by line and extracts the
+ # container name from it by looking for the `name="..."` line, and uses -F\" to
+ # split the line by double quotes. Then all % characters are replaced with %%
+ # to escape them for the prompt.
+ awk -F\" '/name/ { gsub(/%/, "%%", $2); print $2 }' /run/.containerenv
+}
+
+alias tbe="toolbox enter"
+alias tbr="toolbox run"