helm/rake/pkg/zsh.rake
2014-09-08 12:10:49 -04:00

47 lines
1.2 KiB
Ruby

desc "Ensure zsh & prezto are installed"
task :zsh => 'zsh:update'
ENV["PREZTO_PATH"] = File.expand_path("~/.zprezto")
namespace :zsh do
task :install do
echo "Attempting to install ZSH"
Package.install "zsh"
unless Dir.exists? ENV["PREZTO_PATH"]
echo "Installing prezto", 2
github 'hlissner/prezto', ENV["PREZTO_PATH"]
end
sh_safe '~/.dotfiles/install.sh'
unless `printenv SHELL | grep "/zsh$"`
echo "Setting shell to ZSH", 2
zsh_bin = is_mac? ? "/usr/local/bin/zsh" : "/usr/bin/zsh"
if !File.exists? zsh_bin
error "ZSH isn't in #{File.dirname(zsh_bin)}"
next
end
# Write the new zsh into shells if it isn't already there
if `cat /etc/shells | grep "^#{zsh_bin}$"`
echo "Writing '#{zsh_bin}' to /etc/shells", 3
sh_safe "echo '#{zsh_bin}' | sudo tee -a /etc/shells"
end
sh_safe "chsh -s #{zsh_bin}"
sh_safe "exec /bin/zsh -l"
end
echo "Comment out path_helper to fix PATH in emacs!" if is_mac?
end
task :update => "zsh:install" do
echo "Updating zprezto"
sh_safe 'cd ~/.zprezto && git pull'
end
task :remove do
sh_safe 'rm -rf ~/.zprezto' if Dir.exists? ENV["PREZTO_PATH"]
end
end