summaryrefslogtreecommitdiffstats
path: root/.config/zsh/oh-my-zsh/plugins/profiles
diff options
context:
space:
mode:
authorLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2025-02-13 14:13:49 +0530
committerLibravatarLibravatar Biswakalyan Bhuyan <biswa@surgot.in> 2025-02-13 14:13:49 +0530
commit8a2e1006b3b272126332aa064f3ad95387129544 (patch)
tree944c80ac612a65980d94a54ba11b6c7102037ecf /.config/zsh/oh-my-zsh/plugins/profiles
parentdcbb16d8b08ff5956abef5e6478b59df2e93ad35 (diff)
downloaddotfiles-8a2e1006b3b272126332aa064f3ad95387129544.tar.gz
dotfiles-8a2e1006b3b272126332aa064f3ad95387129544.tar.bz2
dotfiles-8a2e1006b3b272126332aa064f3ad95387129544.zip
new dot filesHEADmaster
Diffstat (limited to '.config/zsh/oh-my-zsh/plugins/profiles')
-rw-r--r--.config/zsh/oh-my-zsh/plugins/profiles/README.md25
-rw-r--r--.config/zsh/oh-my-zsh/plugins/profiles/profiles.plugin.zsh12
2 files changed, 37 insertions, 0 deletions
diff --git a/.config/zsh/oh-my-zsh/plugins/profiles/README.md b/.config/zsh/oh-my-zsh/plugins/profiles/README.md
new file mode 100644
index 0000000..5aa1918
--- /dev/null
+++ b/.config/zsh/oh-my-zsh/plugins/profiles/README.md
@@ -0,0 +1,25 @@
+# profiles plugin
+
+This plugin allows you to create separate configuration files for zsh based
+on your long hostname (including the domain).
+
+To use it, add profiles to the plugins array of your zshrc file:
+
+```sh
+plugins=(... profiles)
+```
+
+It takes your `$HOST` variable and looks for files named according to the
+domain parts in `$ZSH_CUSTOM/profiles/` directory.
+
+For example, for `HOST=host.domain.com`, it will try to load the following files,
+in this order:
+
+```text
+$ZSH_CUSTOM/profiles/com
+$ZSH_CUSTOM/profiles/domain.com
+$ZSH_CUSTOM/profiles/host.domain.com
+```
+
+This means that if there are conflicting settings on those files, the one to take
+precedence will be the last applied, i.e. the one in host.domain.com.
diff --git a/.config/zsh/oh-my-zsh/plugins/profiles/profiles.plugin.zsh b/.config/zsh/oh-my-zsh/plugins/profiles/profiles.plugin.zsh
new file mode 100644
index 0000000..5bc56ce
--- /dev/null
+++ b/.config/zsh/oh-my-zsh/plugins/profiles/profiles.plugin.zsh
@@ -0,0 +1,12 @@
+# You will probably want to list this plugin as the first in your .zshrc.
+
+# This will look for a custom profile for the local machine and each domain or
+# subdomain it belongs to. (e.g. com, example.com and foo.example.com)
+parts=(${(s:.:)HOST})
+for i in {${#parts}..1}; do
+ profile=${(j:.:)${parts[$i,${#parts}]}}
+ file=$ZSH_CUSTOM/profiles/$profile
+ if [ -f $file ]; then
+ source $file
+ fi
+done