This cookbook features:
- A Chef LWRP to install oh-my-zsh for system users.
- A companion recipe for user::data_bag which adds an oh-my-zsh per user installation option.
stove
Include recipe[oh_my_zsh]
in your run_list
and oh_my_zsh_user
resource will become available.
The oh_my_zsh::data_bag
recipe assumes that you're using the user::data_bag
recipe from the excellent user cookbook. It lets you configure oh-my-zsh installation in user specific data_bags, e.g.
{
"id" : "testman",
"home" : "/home/testman"
...
"oh-my-zsh" : { "enabled": true, "theme": "wedisagree", "plugins": ["git", "rvm"] }
}
This cookbook has been tested with the following OSes:
- ubuntu
- gentoo
The cookbook has got the following dependencies:
No-op, does nothing.
Processes node['users']
and installs oh-my-zsh for the ones whose data_bags enable it, e.g.
{
"id" : "ranger",
...
"oh-my-zsh" : { "enabled": true }
}
Action | Description | Default |
---|---|---|
ensure | Install oh-my-zsh into ~/.oh-my-zsh , create and populate ~/.zshrc. |
yes |
create | Install only if ~/.oh-my-zsh or ~/.zshrc is missing. |
no |
Attribute | Description | Default Value |
---|---|---|
login | Name attribute: The login of the user. | nil |
home | User's home directory. | /home/username or /root |
theme | Theme to use | alanpeabody |
plugins | Plugins to enable | [] |
case_sensitive | Use case sensitive completion | false |
autocorrect | Use autocorrection feature | true |
locale | set your locale | UTF8 |
.zshrc.chef.local
Enables you to deploy additional zsh configuration per user, extending central aliases or whatever you like. So this file should still be under control of your chef cookbook, but rather optionally include wrapper cookbook extensions of any kind.
This file is loaded per user in the end of the .zshrc file
.zshrc.local
This file can be created by the user, if he decides to - this file is not controlled by chef - its for the local user to put his little aliases inside.
oh_my_zsh_user 'jessie' do
plugins %w{git ruby}
autocorrect false
case_sensitive true
end
You can run the test using kitchen
chef exec kitchen converge
This cookbook is heavily based on https://github.com/lxmx/chef-oh-my-zsh so a lot of credits go to Vasily Mikhaylichenko
Licensed under BSD license.
http://opensource.org/licenses/BSD-2-Clause