diff options
author | 2025-02-13 14:13:49 +0530 | |
---|---|---|
committer | 2025-02-13 14:13:49 +0530 | |
commit | 8a2e1006b3b272126332aa064f3ad95387129544 (patch) | |
tree | 944c80ac612a65980d94a54ba11b6c7102037ecf /.config/zsh/oh-my-zsh/plugins/profiles | |
parent | dcbb16d8b08ff5956abef5e6478b59df2e93ad35 (diff) | |
download | dotfiles-8a2e1006b3b272126332aa064f3ad95387129544.tar.gz dotfiles-8a2e1006b3b272126332aa064f3ad95387129544.tar.bz2 dotfiles-8a2e1006b3b272126332aa064f3ad95387129544.zip |
Diffstat (limited to '.config/zsh/oh-my-zsh/plugins/profiles')
-rw-r--r-- | .config/zsh/oh-my-zsh/plugins/profiles/README.md | 25 | ||||
-rw-r--r-- | .config/zsh/oh-my-zsh/plugins/profiles/profiles.plugin.zsh | 12 |
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 |