#!/usr/bin/env ruby def bail(msg) puts msg exit(1) end $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib]) require 'yaml' require 'teamocil' require 'optparse' bail "You must be in a tmux session to use teamocil" unless ENV["TMUX"] options = {} opts = OptionParser.new do |opts| opts.banner = "Usage: teamocil [options] Options: " opts.on("--here", "Set up the first window in the current window") do options[:here] = true end opts.on("--edit", "Edit the YAML layout file instead of using it") do options[:edit] = true end opts.on("--layout [LAYOUT]", "Use a specific layout file, instead of ~/.teamocil/.yml") do |layout| options[:layout] = layout end end opts.parse! if options.include?(:layout) file = options[:layout] else file = File.join("#{ENV["HOME"]}/.teamocil", "#{ARGV[0]}.yml") end bail "There is no file \"#{file}\"" unless File.exists?(file) if options[:edit] system("$EDITOR \"#{file}\"") else layout = Teamocil::Layout.new(file, options) layout.to_tmux end