termrc 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d06e86ff71c380bb240d0d2f60a64cc71a3775f
4
- data.tar.gz: 25e8812bffe0288f4a46e10a1b8941eec36cee9d
3
+ metadata.gz: 9fcb14299cfde27760c6dfa122bda333155246e1
4
+ data.tar.gz: e453a10c68003872229394eaef5d654dc37f259e
5
5
  SHA512:
6
- metadata.gz: 8c2b0a2c8053326bcd400d0e921494244fcab4e5e29e130fb5685c9e95d0c685c6587bd241973d4bf89160e5cfe16c48bcc19d9724e5d626436dd60ebd01e24f
7
- data.tar.gz: b411d51211d9a4372568aff51c56dd7d4eaff1a47f9b7023db934408ea3d6024131193626310298e78c864565b39d6a682d4e7c710e1de5c8dd24331b2596104
6
+ metadata.gz: 688a2d7b691bdff513ac81b37fd7e7bc2a31530cffe8e172f0a836df2e1e939110b09d58809447bfaea21ba3202c6725dd5be1d56b77eca4f66c0314b5931b74
7
+ data.tar.gz: ab8cfa03d40e366e8570ff25c49dc965e63c4b5dbf28f32c0b20b59eb2e6a7e4eea41b11987addae0766d42e035b0baeff12c374ca04b362dc28e9e3aebe8259
data/README.md CHANGED
@@ -4,23 +4,24 @@ Take your [iTerm2](http://www.iterm2.com/) environments with you wherever you go
4
4
 
5
5
  Description
6
6
  -----------
7
- Termrc allows you to store information about your project's environment for a given project in a small YAML file called a `.termrc` file. Restoring your project's environment is as simple as calling `termrc start`. Enjoy.
7
+ Termrc allows you to store information about your project's environment for a given project in a small YAML file called a `Termfile` file. Restoring your project's environment is as simple as calling `termrc start`. Enjoy.
8
8
 
9
9
  Quick Start
10
10
  -----------
11
11
  ```bash
12
12
  $ gem install termrc
13
- $ termrc create
13
+ $ termrc create
14
14
  $ termrc start
15
15
  ```
16
16
 
17
17
  .termrc file
18
18
  ----------
19
- The `.termrc` file is a [YAML](http://en.wikipedia.org/wiki/YAML) file which stores information about your project's environment. An environment, in this context, is an iTerm2 window with various panes, each with a different default command that is run when the pane opens. The `layout` dictates what your window looks like, while `commands` gives you a set of commands you can call for each pane.
19
+ The `Termfile` file is a [YAML](http://en.wikipedia.org/wiki/YAML) file which stores information about your project's environment. An environment, in this context, is an iTerm2 window with various panes, each with a different default command that is run when the pane opens. The `layout` dictates what your window looks like, while `commands` gives you a set of commands you can call for each pane.
20
20
 
21
- Place the `.termrc file` at your project's root, then call `termrc start`. Voila!
21
+ Place the `Termfile` file at your project's root, then call `termrc start`. Voila!
22
+
23
+ **Example Termfile**
22
24
 
23
- **Example .termrc**
24
25
  ```yaml
25
26
  commands:
26
27
  here: echo "Hello, here."
@@ -33,24 +34,26 @@ layout:
33
34
  - [ here, there ] # row 1, with 2 panes
34
35
  - [ world ] # row 2, with 1 pane
35
36
  - [ me, you ] # row 3, with 2 panes
36
- ```
37
+ ```
37
38
 
38
39
  **The Result**
39
- A `.termrc` file is a YAML file which requires two keys: `commands` and a `layout`. Each item in `layout` corresponds to a row of panes in iTerm2. So, for instance, the example `.termrc` file above would produce a new iTerm2 window with the following commands running inside each pane:
40
+
41
+ A `Termfile` file is a YAML file which requires two keys: `commands` and a `layout`. Each item in `layout` corresponds to a row of panes in iTerm2. So, for instance, the example `Termfile` file above would produce a new iTerm2 window with the following commands running inside each pane:
40
42
 
41
43
  <img src="https://rawgithub.com/briangonzalez/termrc/master/images/termrc-screen.png">
42
44
 
43
- You can supply an optional third key, `root`, which indicates the root directory you'd like each command to be run inside of. Have a look at [this project's](https://github.com/briangonzalez/termrc/blob/master/.termrc)`.termrc` file for an example.
45
+ You can supply an optional third key, `root`, which indicates the root directory you'd like each command to be run inside of. Have a look at [this project's](https://github.com/briangonzalez/termrc/blob/master/Termfile.test)`Termfile` file for an example.
44
46
 
45
- ** Tabs **
46
- You can automate tabs by providing an array of arrays, each array denoting a new tab and the layout within it. See [this template file]() for an example.
47
+ **Tabs**
48
+
49
+ You can automate tabs by providing an array of arrays, each array denoting a new tab and the layout within it. See [this template file](https://github.com/briangonzalez/termrc/blob/master/lib/template/termrc_with_tabs.template) for an example.
47
50
 
48
51
  CLI
49
52
  ---
50
53
 
51
54
  ```bash
52
55
  $ termrc start # Start termrc file (Shortcut: s, Argument 0: file (optional) )
53
- $ termrc create # Create termrc file
56
+ $ termrc create # Create termrc file
54
57
  $ termrc list # List termrc files in folder (Shortcut: l, Argument 0: folder (optional))
55
58
  ```
56
59
 
@@ -61,7 +64,13 @@ Released under the MIT License.
61
64
 
62
65
  Questions?
63
66
  ----------
64
- Find me on [Twitter](http://twitter.com/brianmgonzalez).
67
+ | ![twitter/brianmgonzalez](http://gravatar.com/avatar/f6363fe1d9aadb1c3f07ba7867f0e854?s=70](http://twitter.com/brianmgonzalez "Follow @brianmgonzalez on Twitter") |
68
+ |---|
69
+ | [Brian Gonzalez](http://briangonzalez.org) |
70
+
71
+ Changelog
72
+ ---------
73
+ * March 19, 2014 - Now using `Termfile`; panes now named with given command
65
74
 
66
75
  Resources
67
76
  ---------
data/Termfile.test ADDED
@@ -0,0 +1,11 @@
1
+
2
+ root:
3
+ ~/code/github/termrc-gem
4
+
5
+ commands:
6
+ git_status: git status
7
+ rake: rake -T
8
+
9
+ layout:
10
+ - [ git_status ]
11
+ - [ rake ]
@@ -30,7 +30,7 @@ module Termrc
30
30
  def applescript_files
31
31
  if tabs?
32
32
  return @layout.each_with_index.map{ |layout_array, index|
33
- applescript_file(layout_array, index)
33
+ applescript_file(layout_array, index)
34
34
  }
35
35
  else
36
36
  return [ applescript_file(@layout, 0) ]
@@ -39,16 +39,16 @@ module Termrc
39
39
 
40
40
  def applescript_file(layout_array, index)
41
41
  t = TEMPLATE
42
-
42
+
43
43
  if index > 0
44
44
  # All other tabs.
45
45
  t = t.gsub("[window_or_tab]", new_tab)
46
- t = t.gsub("[session]", current_session)
46
+ t = t.gsub("[session]", current_session)
47
47
  t = t.gsub("[terminate_unused]", terminate_session('last'))
48
48
  else
49
49
  # First tab.
50
50
  t = t.gsub("[window_or_tab]", new_window)
51
- t = t.gsub("[session]", new_session)
51
+ t = t.gsub("[session]", new_session)
52
52
  t = t.gsub("[terminate_unused]", terminate_session)
53
53
  end
54
54
 
@@ -70,7 +70,7 @@ module Termrc
70
70
  def panes(layout_array)
71
71
  cmd = next_pane # back to the top
72
72
  cmd = next_pane # back to the top
73
-
73
+
74
74
  layout_array.each do |cmds|
75
75
  cmd << Array.new( cmds.length - 1, new_column ).join("\n")
76
76
  cmd << next_pane
@@ -85,10 +85,10 @@ module Termrc
85
85
 
86
86
  layout_array.each do |commands|
87
87
  commands.each do |name|
88
- cmd << execute_command( @cmd_index, @commands[name] )
88
+ cmd << execute_command( @cmd_index, @commands[name], name )
89
89
  @cmd_index += 1
90
90
  end
91
- end
91
+ end
92
92
 
93
93
  cmd
94
94
  end
@@ -131,22 +131,25 @@ module Termrc
131
131
  end
132
132
 
133
133
  def new_session
134
- "set mysession to (make new session at the end of sessions) "
134
+ "set mysession to (make new session at the end of sessions)"
135
135
  end
136
136
 
137
137
  def current_session
138
- "set mysession to (current session) "
138
+ "set mysession to (current session)"
139
139
  end
140
140
 
141
141
  def terminate_session(which='first')
142
142
  "terminate the #{which} session"
143
143
  end
144
144
 
145
- def execute_command(item, command)
145
+ def execute_command(item, command, name)
146
146
  command = command.gsub('"', '\\"')
147
147
  command = command.gsub("'", "\\'")
148
148
  command = "cd #{@root} && " + command if @root
149
- "tell item #{item} of sessions to write text \"#{command}\" \n"
149
+ <<-EOH
150
+ tell item #{item} of sessions to set name to "#{name}" \n
151
+ tell item #{item} of sessions to write text \"#{command}\" \n
152
+ EOH
150
153
  end
151
154
 
152
155
  def keystroke(key, using="")
data/lib/termrc/cli.rb CHANGED
@@ -3,7 +3,7 @@ require 'fileutils'
3
3
 
4
4
  module Termrc
5
5
 
6
- TERMRC_TEMPLATE = File.join( File.expand_path('../..', __FILE__), 'template', 'termrc_base.template' )
6
+ TERMRC_TEMPLATE = File.join( File.expand_path('../..', __FILE__), 'template', 'termfile.template' )
7
7
 
8
8
  class Cli < Thor
9
9
  include Thor::Actions
@@ -12,44 +12,56 @@ module Termrc
12
12
  map 'l' => :list
13
13
  map 's' => :start
14
14
 
15
- desc 'create', 'Create termrc file (Shortcut: c)'
15
+ desc 'create', 'Create Termfile (Shortcut: c)'
16
16
  def create
17
-
18
- if File.exist? '.termrc'
19
- raise Thor::Error.new "Error: '.termrc' already exists!"
17
+ if (File.exist? '.termrc' or File.exists? 'Termfile')
18
+ say_this "Error: 'Termfile' already exists!"
19
+ return
20
20
  else
21
- say "Creating .termrc file..", :yellow
22
- FileUtils.cp TERMRC_TEMPLATE, '.termrc'
23
-
24
- say "Success! \n\n", :yellow
21
+ say_this "Creating Termfile...", :yellow
22
+ FileUtils.cp TERMRC_TEMPLATE, 'Termfile'
25
23
 
26
- say "Now run your new termrc file by calling `termrc start`", :blue
24
+ say_this "Success! \n", :yellow
25
+ say_this "Now run your new Termfile file by calling `termrc start`", :blue
27
26
  end
28
27
  end
29
28
 
30
- desc 'list', 'List termrc files in folder (Shortcut: l, Argument 0: folder (optional))'
29
+ desc 'list', 'List Termfiles in folder (Shortcut: l, Argument 0: folder (optional))'
31
30
  def list(folder='.')
32
31
  folder_description = folder == "." ? 'current folder' : "'#{folder}'"
33
- say "Looking for termrc files in #{folder_description}:", :yellow
34
-
35
- a = `find #{folder} | grep -w \.termrc$`
36
- say a
32
+ say_this "Looking for termrc files in #{folder_description}:", :yellow
37
33
 
38
- say "None found.", :red if a.length < 1
34
+ a = `find #{folder} -name ".termrc" -o -name "Termfile"`
35
+ say_this a
36
+
37
+ say_this "None found.", :red if a.length < 1
39
38
  end
40
39
 
41
40
  desc 'start', 'Start termrc file (Shortcut: s, Argument 0: file (optional) )'
42
- def start(file=false)
43
- file = file || '.termrc'
44
- raise Thor::Error.new "File '#{file}'' does not exist!" unless File.exist? file
41
+ def start(file='Termfile')
42
+ file = '.termrc' unless File.exists?(file)
43
+
44
+ if !File.exist? file
45
+ say_this "Could not find Termfile! Did you run `termrc create`?", :red
46
+ say_this "Did you run `termrc init`?", :yellow
47
+ return
48
+ elsif file == '.termrc'
49
+ say_this "Using deprecated #{file} file...", :yellow
50
+ end
45
51
 
46
- say "Starting termrc file: '#{file}'.", :yellow
47
- say "[ Please wait until fully launched! ]", :red
52
+ say_this "Starting termrc using: '#{file}'", :blue
53
+ say_this "Please wait until all panes have fully launched!", :red
48
54
  begin
49
55
  Termrc::Base.new( File.expand_path(file) )
50
56
  rescue Exception => e
51
- say "\nError while starting termrc file:", :red
52
- puts e
57
+ say_this "Error while starting termrc:", :red
58
+ say_this e.to_s
59
+ end
60
+ end
61
+
62
+ no_commands do
63
+ def say_this(text="", color=:white)
64
+ say "** " + (text || ''), color
53
65
  end
54
66
  end
55
67
 
data/termrc.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |gem|
9
9
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
10
10
  gem.executables << 'termrc'
11
11
  gem.name = "termrc"
12
- gem.version = '0.2.0'
12
+ gem.version = '0.2.1'
13
13
  gem.license = 'MIT'
14
14
 
15
- gem.add_runtime_dependency 'thor', '~> 0.18.0'
15
+ gem.add_runtime_dependency 'thor', '~> 0.18.1'
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: termrc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Gonzalez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-04 00:00:00.000000000 Z
11
+ date: 2014-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.18.0
19
+ version: 0.18.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.18.0
26
+ version: 0.18.1
27
27
  description: Take your iTerm2 environments with you wherever you go.
28
28
  email:
29
29
  - me@briangonzalez.org
@@ -33,13 +33,13 @@ extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - .gitignore
36
- - .termrc
37
36
  - README.md
38
37
  - Rakefile
38
+ - Termfile.test
39
39
  - bin/termrc
40
40
  - lib/template/run.osascript
41
- - lib/template/termrc_base.template
42
- - lib/template/termrc_with_tabs.template
41
+ - lib/template/termfile.template
42
+ - lib/template/termfile_with_tabs.template
43
43
  - lib/termrc.rb
44
44
  - lib/termrc/base.rb
45
45
  - lib/termrc/builder.rb
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  version: '0'
66
66
  requirements: []
67
67
  rubyforge_project:
68
- rubygems_version: 2.0.3
68
+ rubygems_version: 2.2.1
69
69
  signing_key:
70
70
  specification_version: 4
71
71
  summary: Take your iTerm2 environments with you wherever you go.
data/.termrc DELETED
@@ -1,11 +0,0 @@
1
-
2
- root:
3
- ~/code/github/termrc-gem
4
-
5
- commands:
6
- gs: git status
7
- rake: rake -T
8
-
9
- layout:
10
- - [ gs ]
11
- - [ rake ]