tmuxinator 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +28 -0
- data/LICENSE.txt +20 -0
- data/README.md +117 -0
- data/Rakefile +50 -0
- data/TODO +23 -0
- data/VERSION +1 -0
- data/bin/tmuxinator +6 -0
- data/lib/tmuxinator.rb +9 -0
- data/lib/tmuxinator/assets/sample.yml +13 -0
- data/lib/tmuxinator/assets/tmux_config.tmux +23 -0
- data/lib/tmuxinator/cli.rb +138 -0
- data/lib/tmuxinator/config_writer.rb +58 -0
- data/lib/tmuxinator/helper.rb +19 -0
- data/spec/spec_helper.rb +12 -0
- data/spec/tmuxinator_spec.rb +7 -0
- data/tmuxinator.gemspec +72 -0
- metadata +149 -0
data/.document
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
diff-lcs (1.1.2)
|
5
|
+
git (1.2.5)
|
6
|
+
jeweler (1.5.1)
|
7
|
+
bundler (~> 1.0.0)
|
8
|
+
git (>= 1.2.5)
|
9
|
+
rake
|
10
|
+
rake (0.8.7)
|
11
|
+
rcov (0.9.9)
|
12
|
+
rspec (2.1.0)
|
13
|
+
rspec-core (~> 2.1.0)
|
14
|
+
rspec-expectations (~> 2.1.0)
|
15
|
+
rspec-mocks (~> 2.1.0)
|
16
|
+
rspec-core (2.1.0)
|
17
|
+
rspec-expectations (2.1.0)
|
18
|
+
diff-lcs (~> 1.1.2)
|
19
|
+
rspec-mocks (2.1.0)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
bundler (~> 1.0.0)
|
26
|
+
jeweler (~> 1.5.1)
|
27
|
+
rcov
|
28
|
+
rspec (~> 2.1.0)
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2010 Allen Bargi
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
# Tmuxinator
|
2
|
+
|
3
|
+
Create and manage tmux sessions easily. Inspired by Jon Druse's ([Screeninator](https://github.com/jondruse/screeninator)) and Arthur Chiu's ([Terminitor](http://github.com/achiu/terminitor))
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
|
8
|
+
$ gem install tmuxinator
|
9
|
+
|
10
|
+
Then follow the instructions. You just have to drop a line in your ~/.bashrc file, similar to RVM if you've used that before:
|
11
|
+
|
12
|
+
if [[ -s $HOME/.tmuxinator/scripts/tmuxinator ]] ; then source $HOME/.tmuxinator/scripts/tmuxinator ; fi
|
13
|
+
|
14
|
+
## Editor
|
15
|
+
|
16
|
+
tmuxinator uses your shell's default editor for opening files. If you're not sure what that is type:
|
17
|
+
|
18
|
+
$ echo $EDITOR
|
19
|
+
|
20
|
+
For me that produces "mate -w"
|
21
|
+
If you want to change your default editor simple put a line in ~/.bashrc that changes it. Mine looks like this:
|
22
|
+
|
23
|
+
export EDITOR='mate -w'
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
|
28
|
+
### Create a project ###
|
29
|
+
|
30
|
+
$ tmuxinator open project_name
|
31
|
+
|
32
|
+
Create or edit your projects with this command. Your default editor ($EDITOR) is used to open the file. If this is a new project you will see this default config:
|
33
|
+
|
34
|
+
# ~/.tmuxinator/project_name.yml
|
35
|
+
# you can make as many tabs as you wish...
|
36
|
+
|
37
|
+
escape: ``
|
38
|
+
project_name: tmuxinator
|
39
|
+
project_root: ~/code/rails_project
|
40
|
+
tabs:
|
41
|
+
- shell: git pull
|
42
|
+
- database: rails db
|
43
|
+
- console: rails c
|
44
|
+
- logs:
|
45
|
+
- cd logs
|
46
|
+
- tail -f development.log
|
47
|
+
- ssh: ssh me@myhost
|
48
|
+
|
49
|
+
|
50
|
+
If a tab contains multiple commands, they will be 'joined' together with '&&'.
|
51
|
+
|
52
|
+
If you want to have your own default config, place it into $HOME/.tmuxinator/default.yml
|
53
|
+
|
54
|
+
|
55
|
+
Starting a project
|
56
|
+
------------------
|
57
|
+
|
58
|
+
$ start_project_name
|
59
|
+
|
60
|
+
This will fire up tmux with all the tabs you configured.
|
61
|
+
|
62
|
+
### Limitations ###
|
63
|
+
|
64
|
+
After you create a project, you will have to open a new shell window. This is because tmuxinator adds an alias to bash to open tmux with the project config.
|
65
|
+
|
66
|
+
|
67
|
+
Example
|
68
|
+
-------
|
69
|
+
|
70
|
+
![Sample](http://f.cl.ly/items/3e3I1l1t3D2U472n1h0h/Screen%20shot%202010-12-10%20at%2010.59.17%20PM.png)
|
71
|
+
|
72
|
+
|
73
|
+
Other Commands
|
74
|
+
--------------
|
75
|
+
|
76
|
+
$ tmuxinator copy existing_project new_project
|
77
|
+
|
78
|
+
Copy an existing project.
|
79
|
+
|
80
|
+
|
81
|
+
$ tmuxinator update_scripts
|
82
|
+
|
83
|
+
Re-create the tmux scripts and aliases from the configs. Use this only if you edit your project configs outside of tmuxinator, i.e. not using "tmuxinator open xxx".
|
84
|
+
|
85
|
+
|
86
|
+
$ tmuxinator list
|
87
|
+
|
88
|
+
List all the projects you have configured
|
89
|
+
|
90
|
+
$ tmuxinator delete project_name
|
91
|
+
|
92
|
+
Remove a project
|
93
|
+
|
94
|
+
$ tmuxinator implode
|
95
|
+
|
96
|
+
Remove all tmuxinator configs, aliases and scripts.
|
97
|
+
|
98
|
+
|
99
|
+
Questions? Comments? Feature Request?
|
100
|
+
-------------------------------------
|
101
|
+
|
102
|
+
I would love to hear your feedback on this project! Send me a message!
|
103
|
+
|
104
|
+
## Contributing to tmuxinator
|
105
|
+
|
106
|
+
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
107
|
+
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
108
|
+
* Fork the project
|
109
|
+
* Start a feature/bugfix branch
|
110
|
+
* Commit and push until you are happy with your contribution
|
111
|
+
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
112
|
+
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
113
|
+
|
114
|
+
## Copyright
|
115
|
+
|
116
|
+
Copyright (c) 2010 Allen Bargi. See LICENSE.txt for
|
117
|
+
further details.
|
data/Rakefile
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'rake'
|
11
|
+
|
12
|
+
require 'jeweler'
|
13
|
+
Jeweler::Tasks.new do |gem|
|
14
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
+
gem.name = "tmuxinator"
|
16
|
+
gem.homepage = "http://github.com/aziz/tmuxinator"
|
17
|
+
gem.license = "MIT"
|
18
|
+
gem.summary = %Q{Create and manage complex tmux sessions easily.}
|
19
|
+
gem.description = %Q{Create and manage complex tmux sessions easily.}
|
20
|
+
gem.email = "allen.bargi@gmail.com"
|
21
|
+
gem.authors = ["Allen Bargi"]
|
22
|
+
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
|
+
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
+
# gem.add_runtime_dependency 'jabber4r', '> 0.1'
|
25
|
+
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
26
|
+
end
|
27
|
+
Jeweler::RubygemsDotOrgTasks.new
|
28
|
+
|
29
|
+
require 'rspec/core'
|
30
|
+
require 'rspec/core/rake_task'
|
31
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
32
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
33
|
+
end
|
34
|
+
|
35
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
36
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
37
|
+
spec.rcov = true
|
38
|
+
end
|
39
|
+
|
40
|
+
task :default => :spec
|
41
|
+
|
42
|
+
require 'rake/rdoctask'
|
43
|
+
Rake::RDocTask.new do |rdoc|
|
44
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
45
|
+
|
46
|
+
rdoc.rdoc_dir = 'rdoc'
|
47
|
+
rdoc.title = "tmuxinator #{version}"
|
48
|
+
rdoc.rdoc_files.include('README*')
|
49
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
50
|
+
end
|
data/TODO
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
9. cli respond to -v -h
|
2
|
+
10. add method missing for cli
|
3
|
+
6. be sure to set the $SHELL and $EDITOR and path to aliases
|
4
|
+
7. have a doctor like home brew to test $SHELL and $EDITOR and path to aliases and tmux installation
|
5
|
+
8. push it to rubygems
|
6
|
+
11. improve readme file
|
7
|
+
|
8
|
+
4. support panes
|
9
|
+
5. install theme
|
10
|
+
|
11
|
+
Later:
|
12
|
+
x. add documentation
|
13
|
+
x. add tests
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
DONE
|
22
|
+
1. write a better sample
|
23
|
+
2. test reattaching already attached
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.1
|
data/bin/tmuxinator
ADDED
data/lib/tmuxinator.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# ~/.tmuxinator/<%= @name %>.yml
|
2
|
+
# you can make as many tabs as you wish...
|
3
|
+
|
4
|
+
project_name: Tmuxinator
|
5
|
+
project_root: ~/code/rails_project
|
6
|
+
tabs:
|
7
|
+
- shell: git pull
|
8
|
+
- database: rails db
|
9
|
+
- server: rails s
|
10
|
+
- logs: tail -f logs/development.log
|
11
|
+
- console: rails c
|
12
|
+
- capistrano:
|
13
|
+
- server: ssh me@myhost
|
@@ -0,0 +1,23 @@
|
|
1
|
+
cd <%= @project_root %>
|
2
|
+
tmux start-server
|
3
|
+
|
4
|
+
if ! $(tmux has-session -t <%= @project_name %>); then
|
5
|
+
|
6
|
+
tmux new-session -d -s <%= @project_name %> -n <%= @tabs[0].name %>
|
7
|
+
tmux set-option -t <%= @project_name %> base-index 1
|
8
|
+
|
9
|
+
<% @tabs.each do |tab| %>
|
10
|
+
<% unless @tabs.index(tab) == 0 %>
|
11
|
+
tmux new-window -t <%= @project_name %>:<%= @tabs.index(tab) + 1 %> -n <%= tab.name %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<% @tabs.each do |tab| %>
|
16
|
+
tmux send-keys -t <%= @project_name %>:<%= @tabs.index(tab) + 1 %> '<%= tab.stuff %>' C-m
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
tmux select-window -t <%= @project_name %>:1
|
20
|
+
|
21
|
+
fi
|
22
|
+
|
23
|
+
tmux -u attach-session -t <%= @project_name %>
|
@@ -0,0 +1,138 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Tmuxinator
|
4
|
+
class Cli
|
5
|
+
|
6
|
+
class << self
|
7
|
+
include Tmuxinator::Helper
|
8
|
+
|
9
|
+
def start(*args)
|
10
|
+
if args.empty?
|
11
|
+
self.usage
|
12
|
+
else
|
13
|
+
self.send(args.shift, *args)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# print the usage string, this is a fall through method.
|
18
|
+
def usage
|
19
|
+
puts <<"DOC"
|
20
|
+
Usage: tmuxinator ACTION [Arg]
|
21
|
+
|
22
|
+
ACTOINS:
|
23
|
+
open [project_name]
|
24
|
+
create a new project file and open it in your editor
|
25
|
+
copy [source_project] [new_project]
|
26
|
+
copy source_project project file to a new project called new_project
|
27
|
+
delete [project_name]
|
28
|
+
deletes the project called project_name
|
29
|
+
implode
|
30
|
+
deletes all existing projects!
|
31
|
+
list [-v]
|
32
|
+
list all existing projects
|
33
|
+
DOC
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
# Open a config file, it's created if it doesn't exist already.
|
38
|
+
def open(*args)
|
39
|
+
puts "warning: passing multiple arguments to open will be ignored" if args.size > 1
|
40
|
+
@name = args.shift
|
41
|
+
FileUtils.mkdir_p(root_dir+"scripts")
|
42
|
+
config_path = "#{root_dir}#{@name}.yml"
|
43
|
+
unless File.exists?(config_path)
|
44
|
+
template = File.exists?(user_config) ? user_config : "#{File.dirname(__FILE__)}/assets/sample.yml"
|
45
|
+
erb = ERB.new(File.read(template)).result(binding)
|
46
|
+
tmp = File.open(config_path, 'w') {|f| f.write(erb) }
|
47
|
+
end
|
48
|
+
system("$EDITOR #{config_path}")
|
49
|
+
update_scripts
|
50
|
+
end
|
51
|
+
|
52
|
+
def copy(*args)
|
53
|
+
@copy = args.shift
|
54
|
+
@name = args.shift
|
55
|
+
@config_to_copy = "#{root_dir}#{@copy}.yml"
|
56
|
+
|
57
|
+
exit!("Project #{@copy} doesn't exist!") unless File.exists?(@config_to_copy)
|
58
|
+
exit!("You must specify a name for the new project") unless @name
|
59
|
+
|
60
|
+
file_path = "#{root_dir}#{@name}.yml"
|
61
|
+
|
62
|
+
if File.exists?(file_path)
|
63
|
+
confirm!("#{@name} already exists, would you like to overwrite it? (type yes or no):") do
|
64
|
+
FileUtils.rm(file_path)
|
65
|
+
puts "Overwriting #{@name}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
open(@name)
|
69
|
+
end
|
70
|
+
|
71
|
+
def delete(*args)
|
72
|
+
puts "warning: passing multiple arguments to delete will be ignored" if args.size > 1
|
73
|
+
filename = args.shift
|
74
|
+
file_path = "#{root_dir}#{filename}.yml"
|
75
|
+
|
76
|
+
if File.exists?(file_path)
|
77
|
+
confirm!("Are you sure you want to delete #{filename}? (type yes or no):") do
|
78
|
+
FileUtils.rm(file_path)
|
79
|
+
puts "Deleted #{filename}"
|
80
|
+
end
|
81
|
+
else
|
82
|
+
exit! "That file doesn't exist."
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
def implode(*args)
|
88
|
+
exit!("delete_all doesn't accapt any arguments!") unless args.empty?
|
89
|
+
confirm!("Are you sure you want to delete all tmuxinator configs? (type yes or no):") do
|
90
|
+
FileUtils.remove_dir(root_dir)
|
91
|
+
puts "Deleted #{root_dir}"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def list(*args)
|
96
|
+
verbose = args.include?("-v")
|
97
|
+
puts "tmuxinator configs:"
|
98
|
+
Dir["#{root_dir}**"].each do |path|
|
99
|
+
next unless verbose || File.extname(path) == ".yml"
|
100
|
+
path = path.gsub(root_dir, '').gsub('.yml','') unless verbose
|
101
|
+
puts " #{path}"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def update_scripts
|
106
|
+
Dir["#{root_dir}*.tmux"].each {|p| FileUtils.rm(p) }
|
107
|
+
aliases = []
|
108
|
+
Dir["#{root_dir}*.yml"].each do |path|
|
109
|
+
path = File.basename(path, '.yml')
|
110
|
+
aliases << Tmuxinator::ConfigWriter.new(path).write!
|
111
|
+
end
|
112
|
+
Tmuxinator::ConfigWriter.write_aliases(aliases)
|
113
|
+
end
|
114
|
+
|
115
|
+
def method_missing(method, *args, &block)
|
116
|
+
puts "There's no command called #{method} in tmuxinator"
|
117
|
+
usage
|
118
|
+
end
|
119
|
+
|
120
|
+
private #==============================
|
121
|
+
|
122
|
+
def root_dir
|
123
|
+
"#{ENV["HOME"]}/.tmuxinator/"
|
124
|
+
end
|
125
|
+
|
126
|
+
def sample_config
|
127
|
+
"#{File.dirname(__FILE__)}/assets/sample.yml"
|
128
|
+
end
|
129
|
+
|
130
|
+
def user_config
|
131
|
+
@config_to_copy || "#{ENV["HOME"]}/.tmuxinator/default.yml"
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module Tmuxinator
|
2
|
+
|
3
|
+
class ConfigWriter
|
4
|
+
|
5
|
+
include Tmuxinator::Helper
|
6
|
+
|
7
|
+
def self.write_aliases(aliases)
|
8
|
+
File.open("#{ENV["HOME"]}/.tmuxinator/scripts/tmuxinator", 'w') {|f| f.write(aliases.join("\n")) }
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(filename)
|
12
|
+
@filename = filename
|
13
|
+
@file_path = "#{root_dir}#{@filename}.yml"
|
14
|
+
process_config!
|
15
|
+
end
|
16
|
+
|
17
|
+
def write!
|
18
|
+
template = "#{File.dirname(__FILE__)}/assets/tmux_config.tmux"
|
19
|
+
erb = ERB.new(IO.read(template)).result(binding)
|
20
|
+
config_path = "#{root_dir}#{@filename}.tmux"
|
21
|
+
tmp = File.open(config_path, 'w') {|f| f.write(erb) }
|
22
|
+
|
23
|
+
"alias start_#{@filename}='$SHELL #{config_path}'"
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def root_dir
|
29
|
+
"#{ENV["HOME"]}/.tmuxinator/"
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_config!
|
33
|
+
yaml = YAML.load(File.read(@file_path))
|
34
|
+
|
35
|
+
exit!("Your configuration file should include some tabs.") if yaml["tabs"].nil?
|
36
|
+
exit!("Your configuration file didn't specify a 'project_root'") if yaml["project_root"].nil?
|
37
|
+
exit!("Your configuration file didn't specify a 'project_name'") if yaml["project_name"].nil?
|
38
|
+
|
39
|
+
@project_name = yaml["project_name"]
|
40
|
+
@project_root = yaml["project_root"]
|
41
|
+
@tabs = []
|
42
|
+
|
43
|
+
yaml["tabs"].each do |tab|
|
44
|
+
t = OpenStruct.new
|
45
|
+
t.name = tab.keys.first
|
46
|
+
value = tab.values.first
|
47
|
+
t.stuff = value.is_a?(Array) ? value.join(" && ") : value
|
48
|
+
@tabs << t
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
def write_alias(stuff)
|
54
|
+
File.open("#{root_dir}scripts/#{@filename}", 'w') {|f| f.write(stuff) }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'tmuxinator'
|
5
|
+
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
7
|
+
# in ./support/ and its subdirectories.
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
|
12
|
+
end
|
data/tmuxinator.gemspec
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{tmuxinator}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Allen Bargi"]
|
12
|
+
s.date = %q{2010-12-10}
|
13
|
+
s.default_executable = %q{tmuxinator}
|
14
|
+
s.description = %q{Create and manage complex tmux sessions easily.}
|
15
|
+
s.email = %q{allen.bargi@gmail.com}
|
16
|
+
s.executables = ["tmuxinator"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.md"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".document",
|
23
|
+
".rspec",
|
24
|
+
"Gemfile",
|
25
|
+
"Gemfile.lock",
|
26
|
+
"LICENSE.txt",
|
27
|
+
"README.md",
|
28
|
+
"Rakefile",
|
29
|
+
"VERSION",
|
30
|
+
"bin/tmuxinator",
|
31
|
+
"lib/tmuxinator.rb",
|
32
|
+
"lib/tmuxinator/assets/sample.yml",
|
33
|
+
"lib/tmuxinator/assets/tmux_config.tmux",
|
34
|
+
"lib/tmuxinator/cli.rb",
|
35
|
+
"lib/tmuxinator/config_writer.rb",
|
36
|
+
"lib/tmuxinator/helper.rb",
|
37
|
+
"spec/spec_helper.rb",
|
38
|
+
"spec/tmuxinator_spec.rb"
|
39
|
+
]
|
40
|
+
s.homepage = %q{http://github.com/aziz/tmuxinator}
|
41
|
+
s.licenses = ["MIT"]
|
42
|
+
s.require_paths = ["lib"]
|
43
|
+
s.rubygems_version = %q{1.3.7}
|
44
|
+
s.summary = %q{Create and manage complex tmux sessions easily.}
|
45
|
+
s.test_files = [
|
46
|
+
"spec/spec_helper.rb",
|
47
|
+
"spec/tmuxinator_spec.rb"
|
48
|
+
]
|
49
|
+
|
50
|
+
if s.respond_to? :specification_version then
|
51
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
52
|
+
s.specification_version = 3
|
53
|
+
|
54
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
|
56
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
57
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
58
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<rspec>, ["~> 2.1.0"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
63
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
+
end
|
65
|
+
else
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 2.1.0"])
|
67
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
68
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
69
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
metadata
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tmuxinator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Allen Bargi
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-12-11 00:00:00 +01:00
|
19
|
+
default_executable: tmuxinator
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
name: rspec
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 11
|
31
|
+
segments:
|
32
|
+
- 2
|
33
|
+
- 1
|
34
|
+
- 0
|
35
|
+
version: 2.1.0
|
36
|
+
requirement: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
name: bundler
|
41
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
hash: 23
|
47
|
+
segments:
|
48
|
+
- 1
|
49
|
+
- 0
|
50
|
+
- 0
|
51
|
+
version: 1.0.0
|
52
|
+
requirement: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
name: jeweler
|
57
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 1
|
63
|
+
segments:
|
64
|
+
- 1
|
65
|
+
- 5
|
66
|
+
- 1
|
67
|
+
version: 1.5.1
|
68
|
+
requirement: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
name: rcov
|
73
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 3
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
version: "0"
|
82
|
+
requirement: *id004
|
83
|
+
description: Create and manage complex tmux sessions easily.
|
84
|
+
email: allen.bargi@gmail.com
|
85
|
+
executables:
|
86
|
+
- tmuxinator
|
87
|
+
extensions: []
|
88
|
+
|
89
|
+
extra_rdoc_files:
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- TODO
|
93
|
+
files:
|
94
|
+
- .document
|
95
|
+
- .rspec
|
96
|
+
- Gemfile
|
97
|
+
- Gemfile.lock
|
98
|
+
- LICENSE.txt
|
99
|
+
- README.md
|
100
|
+
- Rakefile
|
101
|
+
- VERSION
|
102
|
+
- bin/tmuxinator
|
103
|
+
- lib/tmuxinator.rb
|
104
|
+
- lib/tmuxinator/assets/sample.yml
|
105
|
+
- lib/tmuxinator/assets/tmux_config.tmux
|
106
|
+
- lib/tmuxinator/cli.rb
|
107
|
+
- lib/tmuxinator/config_writer.rb
|
108
|
+
- lib/tmuxinator/helper.rb
|
109
|
+
- spec/spec_helper.rb
|
110
|
+
- spec/tmuxinator_spec.rb
|
111
|
+
- tmuxinator.gemspec
|
112
|
+
- TODO
|
113
|
+
has_rdoc: true
|
114
|
+
homepage: http://github.com/aziz/tmuxinator
|
115
|
+
licenses:
|
116
|
+
- MIT
|
117
|
+
post_install_message:
|
118
|
+
rdoc_options: []
|
119
|
+
|
120
|
+
require_paths:
|
121
|
+
- lib
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
hash: 3
|
128
|
+
segments:
|
129
|
+
- 0
|
130
|
+
version: "0"
|
131
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
hash: 3
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
requirements: []
|
141
|
+
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 1.3.7
|
144
|
+
signing_key:
|
145
|
+
specification_version: 3
|
146
|
+
summary: Create and manage complex tmux sessions easily.
|
147
|
+
test_files:
|
148
|
+
- spec/spec_helper.rb
|
149
|
+
- spec/tmuxinator_spec.rb
|