multiterm 0.0.1 → 0.0.2

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: c91f850676427c37e644cc97c1a053d80885dfd4
4
- data.tar.gz: bf7e79b289b52770c0dc9e0a20838f71d1bd9553
3
+ metadata.gz: c5ea07352fc603aea65964367f1641e14448ed93
4
+ data.tar.gz: 8e341a7a7b20a3122764ea56dd8e36468dfe0bd1
5
5
  SHA512:
6
- metadata.gz: 740e51dd236fefa9186ffa79a00b28a660f2a89cdea74210230900c76110e96469f814d35035b885739d18e44aad4687c065edbc962acb657e532ed76085fdd9
7
- data.tar.gz: 1b022cc38b237ee0eb2c6cb8859fb55a09014aecfd5b62e6b078a35704519d35563efbb575021f42eaefd0fed50ec5b1f5a506b41b77e85c0fb10d7efdc11f6d
6
+ metadata.gz: d05be027eaf1a1f2f6025c5dc689045d76c456d4466b8be826aa48afb269da3ba004b504b3adb63c3d4c1ed667057dc6fb589000d7e0661385472839abe44429
7
+ data.tar.gz: aa09971aba2845fcb3f8fb0bf26dfd22585af5a3c5d4de78a004fad4ef1138295d04766f7e901407b0a8a25249ea75132a0364f24089d547592445aec10e47b5
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ bin_dir = File.expand_path(File.dirname(__FILE__))
3
+ lib_dir = File.expand_path(File.join(bin_dir, '../lib'))
4
+ $:.unshift(lib_dir)
5
+ $:.uniq!
6
+
7
+ require 'rubygems'
8
+ require 'osaka'
9
+ require 'yaml'
10
+ require 'multiterm'
11
+
12
+ MultiTerm.execute
@@ -37,6 +37,7 @@ module MultiTerm
37
37
  while search_path != '/' && search_path != home_path
38
38
  if File.exists?(File.join(search_path, '.multiterm.yml'))
39
39
  settings = YAML.load(File.read(File.join(search_path, '.multiterm.yml')))
40
+ settings[:root] = File.expand_path(search_path)
40
41
  return settings if settings
41
42
  end
42
43
  search_path = File.expand_path(File.join(search_path, '..'))
@@ -49,10 +50,7 @@ module MultiTerm
49
50
  app = Osaka::Terminal.new
50
51
  app.activate
51
52
  for tab_config in configuration[:tabs]
52
- app.new_tab(
53
- script: tab_config[:script],
54
- name: tab_config[:name]
55
- )
53
+ app.new_tab({:directory => configuration[:root]}.merge(tab_config))
56
54
  end
57
55
  else
58
56
  puts "Missing '.multiterm.yml' configuration."
@@ -9,7 +9,11 @@ module Osaka
9
9
  def new_tab(options={})
10
10
  tab_name = options[:name]
11
11
  script = options[:script]
12
+ directory = options[:directory]
12
13
  control.keystroke('t', :command)
14
+ if directory != nil
15
+ control.tell('do script "cd \'' + directory + '\'" in front window')
16
+ end
13
17
  if tab_name != nil
14
18
  tab_name.gsub!(/[^a-zA-Z0-9 \_\-\.]/, '')
15
19
 
@@ -17,13 +21,14 @@ module Osaka
17
21
  # on ';' character, which we need to use mid-script.
18
22
  script_commands = [
19
23
  'tell application "Terminal"',
20
- 'do script "printf \'\\\\\e]1;' + tab_name.to_s + '\\\\\a\'; clear" in front window',
24
+ 'do script "printf \'\\\\\e]1;' + tab_name.to_s + '\\\\\a\'" in front window',
21
25
  'end tell'
22
26
  ].map { |c| c.gsub("\"", "\\\"") }
23
27
  escaped_commands = ""
24
28
  script_commands.each { |l| escaped_commands += " -e \"#{l.strip}\"" }
25
29
  new_tab_output = `osascript#{escaped_commands} 2>&1`
26
30
  end
31
+ control.tell('do script "clear" in front window')
27
32
  if script != nil
28
33
  # LOL, yes, we need to triple-escape for double quotes.
29
34
  # Single quotes should Just Work.
@@ -18,7 +18,7 @@ unless defined? MultiTerm::VERSION
18
18
  module VERSION
19
19
  MAJOR = 0
20
20
  MINOR = 0
21
- TINY = 1
21
+ TINY = 2
22
22
 
23
23
  STRING = [MAJOR, MINOR, TINY].join('.')
24
24
  end
@@ -23,6 +23,7 @@ namespace :gem do
23
23
  s.add_development_dependency("launchy", ">= 0.3.2")
24
24
 
25
25
  s.require_path = "lib"
26
+ s.executables << 'multiterm'
26
27
 
27
28
  s.author = "Bob Aman"
28
29
  s.email = "bob@sporkmonger.com"
@@ -58,7 +59,7 @@ namespace :gem do
58
59
 
59
60
  desc "Install the gem"
60
61
  task :install => ["clobber", "gem:package"] do
61
- sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
62
+ sh "gem install pkg/#{GEM_SPEC.full_name}.gem"
62
63
  end
63
64
 
64
65
  desc "Uninstall the gem"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multiterm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bob Aman
@@ -55,7 +55,8 @@ dependencies:
55
55
  description: |
56
56
  MultiTerm is a rudimentary terminal multiplexer for OS X that uses the built-in Terminal.app tabs.
57
57
  email: bob@sporkmonger.com
58
- executables: []
58
+ executables:
59
+ - multiterm
59
60
  extensions: []
60
61
  extra_rdoc_files:
61
62
  - README.md
@@ -65,6 +66,7 @@ files:
65
66
  - LICENSE
66
67
  - README.md
67
68
  - Rakefile
69
+ - bin/multiterm
68
70
  - lib/multiterm.rb
69
71
  - lib/multiterm/terminal.rb
70
72
  - lib/multiterm/version.rb