Fri, 22 Jan 2016 17:44:49 -0500
Add some zsh options
#!/usr/bin/env ruby # vim: et sts=2 sw=2 fdm=marker # we don't yet have rbenv so keep safe for ruby 1.9 require 'getoptlong' if `which git` == '' puts "please install git" exit 1 end def main if ARGV.length == 0 ARGV << '--help' end opts = GetoptLong.new( [ '--help', '-h', GetoptLong::NO_ARGUMENT ], [ '--update', '-u', GetoptLong::NO_ARGUMENT ], [ '--setup', '-s', GetoptLong::NO_ARGUMENT ], ); Dir.chdir( File.dirname File.expand_path $0 ) opts.each do |opt, arg| case opt when '--help' puts <<-ENDHELP.sub(/^\s+/,'') #{$0} usage: -h --help This help message -s --setup Perform home directory setup (git clone) -u --update Update git stuff (git pull) ENDHELP exit 1 when '--setup' setup when '--update' update end end end # just checks and bails after each call, output already in STDERR def do_cmds (*cmds) cmds.each do |cmd| puts "$ #{cmd}" system( cmd ) or exit $? end end def setup # zgen {{{ if Dir.exists?('.zgen') puts "zgen already installed" else puts "Installing zgen..." do_cmds \ 'git clone https://github.com/tarjoilija/zgen.git .zgen' end # }}} # plenv {{{ if Dir.exists?('.plenv') puts "plenv already installed" else puts "Installing plenv..." do_cmds \ 'git clone https://github.com/tokuhirom/plenv.git .plenv', 'git clone https://github.com/tokuhirom/Perl-Build.git .plenv/plugins/perl-build/' end # }}} # rbenv {{{ if Dir.exists?('.rbenv') puts "rbenv already installed" else puts "Installing rbenv..." do_cmds \ 'git clone https://github.com/sstephenson/rbenv.git .rbenv', 'git clone https://github.com/sstephenson/ruby-build.git .rbenv/plugins/ruby-build/' end # }}} # ndenv {{{ if Dir.exists?('.ndenv') puts "ndenv already installed" else puts "Installing ndenv..." do_cmds \ 'git clone https://github.com/riywo/ndenv.git .ndenv', 'git clone https://github.com/riywo/node-build.git .ndenv/plugins/node-build' end # }}} end def update [ '.zgen', '.plenv', '.plenv/plugins/perl-build', '.rbenv', '.rbenv/plugins/ruby-build', '.ndenv', '.ndenv/plugins/node-build', ].each do |dir| do_cmds \ "cd ~/#{dir} && git pull origin master" end end main