Add --here
option to create the first window in the current window
This commit is contained in:
parent
9f1b573a99
commit
34c7ec5649
31
bin/teamocil
31
bin/teamocil
@ -1,13 +1,34 @@
|
||||
#!/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'
|
||||
|
||||
if ENV["TMUX"] == nil
|
||||
puts "You must be in a tmux session to use teamocil"
|
||||
else
|
||||
layout = Teamocil::Layout.new(ARGV[0], File.join("#{ENV["HOME"]}/.teamocil", "#{ARGV[0]}.yml"))
|
||||
layout.to_tmux
|
||||
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] <layout>
|
||||
|
||||
Options:
|
||||
"
|
||||
opts.on("--here", "Set up the first window in the current window") do |safe|
|
||||
options[:here] = true
|
||||
end
|
||||
|
||||
end
|
||||
opts.parse!
|
||||
|
||||
file = File.join("#{ENV["HOME"]}/.teamocil", "#{ARGV[0]}.yml")
|
||||
|
||||
bail "There is no file \"#{file}\"" unless File.exists?(file)
|
||||
|
||||
layout = Teamocil::Layout.new(file, options)
|
||||
layout.to_tmux
|
||||
|
@ -1,4 +1,4 @@
|
||||
module Teamocil
|
||||
VERSION = '0.1.2'
|
||||
VERSION = '0.1.4'
|
||||
autoload :Layout, "teamocil/layout"
|
||||
end
|
||||
|
@ -1,11 +1,11 @@
|
||||
module Teamocil
|
||||
class Layout
|
||||
|
||||
attr_accessor :config, :name
|
||||
attr_accessor :layout, :options
|
||||
|
||||
def initialize(name, file) # {{{
|
||||
def initialize(file, options) # {{{
|
||||
@layout = YAML.load_file(file)
|
||||
@name = name
|
||||
@options = options
|
||||
end # }}}
|
||||
|
||||
def to_tmux # {{{
|
||||
@ -16,9 +16,13 @@ module Teamocil
|
||||
def generate_commands # {{{
|
||||
output = []
|
||||
|
||||
@layout["windows"].each do |window|
|
||||
@layout["windows"].each_with_index do |window, window_index|
|
||||
|
||||
if options.include?(:here) and window_index == 0
|
||||
output << "tmux rename-window #{window["name"]}"
|
||||
else
|
||||
output << "tmux new-window -n #{window["name"]}"
|
||||
end
|
||||
window["splits"].each_with_index do |split, index|
|
||||
unless index == 0
|
||||
if split.include?("width")
|
||||
|
@ -1,6 +1,6 @@
|
||||
spec = Gem::Specification.new do |s|
|
||||
s.name = "teamocil"
|
||||
s.version = "0.1.2"
|
||||
s.version = "0.1.4"
|
||||
s.platform = Gem::Platform::RUBY
|
||||
s.authors = "Rémi Prévost"
|
||||
s.email = "remi@exomel.com"
|
||||
|
Loading…
Reference in New Issue
Block a user