multiterm 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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