tmuxification 0.0.2 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +30 -12
- data/bin/tmuxification +1 -1
- data/lib/tmuxification/version.rb +1 -1
- data/lib/tmuxification.rb +27 -5
- data/templates/default.fish.tmux.erb +14 -0
- data/templates/{default.tmux.erb → default.zsh.tmux.erb} +0 -2
- data/templates/example.tmux.erb +19 -0
- metadata +7 -4
data/README.md
CHANGED
@@ -6,7 +6,7 @@ with two windows in your project root, vim is started in the first window.
|
|
6
6
|
## Tested on
|
7
7
|
|
8
8
|
* Ruby 1.9
|
9
|
-
* zsh
|
9
|
+
* zsh & fish shells
|
10
10
|
|
11
11
|
## Installation
|
12
12
|
|
@@ -16,35 +16,53 @@ with two windows in your project root, vim is started in the first window.
|
|
16
16
|
|
17
17
|
### Create a new tmux project
|
18
18
|
|
19
|
-
cd ~/code/my_project
|
20
|
-
tmuxification create
|
19
|
+
$ cd ~/code/my_project
|
20
|
+
$ tmuxification create
|
21
|
+
|
22
|
+
You will need to reload your shell config file. The easiest way is to replace
|
23
|
+
the current process with a new instance of your shell, e.g `exec zsh`.
|
21
24
|
|
22
25
|
### Start the project (from any directory)
|
23
26
|
|
24
|
-
start_my_project
|
27
|
+
$ start_my_project
|
28
|
+
|
29
|
+
Note: The above will also autocomplete.
|
30
|
+
|
31
|
+
### List all your projects
|
32
|
+
|
33
|
+
$ tmuxification list
|
34
|
+
|
35
|
+
### Delete a project
|
36
|
+
|
37
|
+
$ cd ~/code/my_project
|
38
|
+
$ tmuxification destroy
|
25
39
|
|
26
40
|
### Templates
|
27
41
|
|
28
|
-
You can create your own templates, just drop them in
|
42
|
+
You can create your own templates, just drop them in `~/.tmuxinator` with a
|
29
43
|
filename such as `basic.tmux.erb` and specify your template as such:
|
30
44
|
|
31
|
-
tmuxification create --template-name=basic
|
45
|
+
$ tmuxification create --template-name=basic
|
46
|
+
|
47
|
+
You can also edit the `default.{zsh,fish}.tmux.erb` templates which are used when
|
48
|
+
no `template-name` is specified.
|
32
49
|
|
33
|
-
|
34
|
-
specified.
|
50
|
+
The default template is chosen based on the default shell.
|
35
51
|
|
36
52
|
### Project name
|
37
53
|
|
38
54
|
By default the tmux project is named after the root directory of the project, you
|
39
55
|
can specify a different project name as such:
|
40
56
|
|
41
|
-
cd ~/code/my_project
|
42
|
-
tmuxification create --project-name=foobar
|
43
|
-
start_foobar
|
57
|
+
$ cd ~/code/my_project
|
58
|
+
$ tmuxification create --project-name=foobar
|
59
|
+
$ start_foobar
|
44
60
|
|
45
61
|
## Warning
|
46
62
|
|
47
|
-
Every project created will append a line per project to
|
63
|
+
Every project created will append a line per project to `.projects`, `.zshrc` or
|
64
|
+
`config.fish` file. The `.projects` is used if it exists otherwise the rc file
|
65
|
+
for th current shell is used.
|
48
66
|
|
49
67
|
## Contributing
|
50
68
|
|
data/bin/tmuxification
CHANGED
data/lib/tmuxification.rb
CHANGED
@@ -12,11 +12,11 @@ module Tmuxification
|
|
12
12
|
setup
|
13
13
|
@project_name = options.fetch('project_name') { Dir.pwd.split('/').last }
|
14
14
|
@project_root = Dir.pwd
|
15
|
-
@template_name = options.fetch('template_name') {
|
15
|
+
@template_name = options.fetch('template_name') { "default.#{current_shell}" }
|
16
16
|
|
17
17
|
template template_file, project_file
|
18
18
|
chmod project_file, 777 # ha!
|
19
|
-
append_to_file shellrc_file, "
|
19
|
+
append_to_file shellrc_file, "#{shell_source_command} #{project_file}\n"
|
20
20
|
end
|
21
21
|
|
22
22
|
desc 'destroy', 'Destroys a tmux project'
|
@@ -35,8 +35,10 @@ module Tmuxification
|
|
35
35
|
desc 'setup', 'Create folder for tmux projects'
|
36
36
|
def setup
|
37
37
|
empty_directory config_directory
|
38
|
-
@template_name = 'default'
|
39
|
-
copy_file 'templates/default.tmux.erb', template_file unless File.exists?(template_file)
|
38
|
+
@template_name = 'default.zsh'
|
39
|
+
copy_file 'templates/default.zsh.tmux.erb', template_file unless File.exists?(template_file)
|
40
|
+
@template_name = 'default.fish'
|
41
|
+
copy_file 'templates/default.fish.tmux.erb', template_file unless File.exists?(template_file)
|
40
42
|
end
|
41
43
|
|
42
44
|
desc 'teardown', 'Delete all projects and containing folder'
|
@@ -52,7 +54,15 @@ module Tmuxification
|
|
52
54
|
private
|
53
55
|
|
54
56
|
def shellrc_file
|
55
|
-
File.expand_path
|
57
|
+
projects_rc = File.expand_path('~/.projects')
|
58
|
+
return File.expand_path projects_rc if File.exists?(projects_rc)
|
59
|
+
return File.expand_path '~/.zshrc' if zsh?
|
60
|
+
return File.expand_path '~/.config/fish/config.fish' if fish?
|
61
|
+
end
|
62
|
+
|
63
|
+
def shell_source_command
|
64
|
+
"source" if zsh?
|
65
|
+
"." if fish?
|
56
66
|
end
|
57
67
|
|
58
68
|
def template_file
|
@@ -67,5 +77,17 @@ module Tmuxification
|
|
67
77
|
def config_directory
|
68
78
|
File.expand_path '~/.tmuxification'
|
69
79
|
end
|
80
|
+
|
81
|
+
def zsh?
|
82
|
+
current_shell == 'zsh'
|
83
|
+
end
|
84
|
+
|
85
|
+
def fish?
|
86
|
+
current_shell == 'fish'
|
87
|
+
end
|
88
|
+
|
89
|
+
def current_shell
|
90
|
+
ENV['SHELL'].split('/').last
|
91
|
+
end
|
70
92
|
end
|
71
93
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
function start_<%= @project_name %>
|
2
|
+
set -l BASE "<%= @project_root %>"
|
3
|
+
cd $BASE
|
4
|
+
|
5
|
+
tmux start-server
|
6
|
+
tmux new-session -d -s <%= @project_name %> -n vim
|
7
|
+
tmux new-window -t <%= @project_name %>:1 -n shell
|
8
|
+
|
9
|
+
tmux send-keys -t <%= @project_name %>:0 "cd $BASE; vim" C-m
|
10
|
+
tmux send-keys -t <%= @project_name %>:1 "cd $BASE;" C-m
|
11
|
+
|
12
|
+
tmux select-window -t <%= @project_name %>:0
|
13
|
+
tmux attach-session -t <%= @project_name %>
|
14
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
function start_<%= @project_name %>
|
4
|
+
{
|
5
|
+
BASE="<%= @project_root %>"
|
6
|
+
cd $BASE
|
7
|
+
|
8
|
+
tmux start-server
|
9
|
+
tmux new-session -d -s <%= @project_name %> -n editor
|
10
|
+
tmux new-window -t <%= @project_name %>:1 -n shell
|
11
|
+
|
12
|
+
tmux send-keys -t <%= @project_name %>:0 "cd $BASE; vi" C-m
|
13
|
+
tmux send-keys -t <%= @project_name %>:1 "cd $BASE; env OPEN_BROWSER=yes script/start && clear" C-m
|
14
|
+
|
15
|
+
tmux select-window -t <%= @project_name %>:0
|
16
|
+
tmux attach-session -t <%= @project_name %>
|
17
|
+
|
18
|
+
script/stop
|
19
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tmuxification
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -43,7 +43,9 @@ files:
|
|
43
43
|
- bin/tmuxification
|
44
44
|
- lib/tmuxification.rb
|
45
45
|
- lib/tmuxification/version.rb
|
46
|
-
- templates/default.tmux.erb
|
46
|
+
- templates/default.fish.tmux.erb
|
47
|
+
- templates/default.zsh.tmux.erb
|
48
|
+
- templates/example.tmux.erb
|
47
49
|
- tmuxification.gemspec
|
48
50
|
homepage: https://github.com/krisleech/tmuxinator
|
49
51
|
licenses: []
|
@@ -65,8 +67,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
67
|
version: '0'
|
66
68
|
requirements: []
|
67
69
|
rubyforge_project:
|
68
|
-
rubygems_version: 1.8.
|
70
|
+
rubygems_version: 1.8.24
|
69
71
|
signing_key:
|
70
72
|
specification_version: 3
|
71
73
|
summary: Generate tmux configurations for your projects
|
72
74
|
test_files: []
|
75
|
+
has_rdoc:
|