dtachr 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/Gemfile +3 -2
  2. data/Gemfile.lock +1 -0
  3. data/dtachr.gemspec +2 -2
  4. data/lib/dtachr.rb +22 -4
  5. metadata +72 -83
data/Gemfile CHANGED
@@ -1,10 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby '1.8.7'
3
+ ruby '1.9.3'
4
4
 
5
5
  gem 'docopt'
6
6
 
7
7
  group :development do
8
+ gem 'bundler'
8
9
  gem 'rake'
9
10
  gem 'rdoc'
10
- end
11
+ end
data/Gemfile.lock CHANGED
@@ -11,6 +11,7 @@ PLATFORMS
11
11
  ruby
12
12
 
13
13
  DEPENDENCIES
14
+ bundler
14
15
  docopt
15
16
  rake
16
17
  rdoc
data/dtachr.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'dtachr'
16
- s.version = '0.0.5'
17
- s.date = '2013-11-15'
16
+ s.version = '0.1.0'
17
+ s.date = '2014-02-18'
18
18
  s.rubyforge_project = 'dtachr'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
data/lib/dtachr.rb CHANGED
@@ -6,7 +6,7 @@ require 'docopt'
6
6
 
7
7
  module Dtachr
8
8
 
9
- VERSION = '0.0.5'
9
+ VERSION = '0.1.0'
10
10
  NAME = 'dtachr'
11
11
 
12
12
  DOC = <<-DOCOPT
@@ -33,19 +33,37 @@ module Dtachr
33
33
  :argv => args,
34
34
  :version => Dtachr::VERSION
35
35
  })
36
- @socket = @opts['socket'] || gen_socket
36
+ @socket = @opts['--socket'] || gen_socket
37
37
  @command = @opts['<parts>'].join(' ')
38
+ @message = @opts.fetch('--message', nil)
39
+ @message ||= default_message
38
40
  rescue Docopt::Exit => e
39
41
  puts e.message
40
42
  end
41
43
 
42
44
  def call
43
45
  return unless @opts
44
- execute("dtach -n #{@socket} #{@command} && #{notify_command}")
46
+ execute("dtach -n #{@socket} #{@command}")
47
+ @socket_abs = File.absolute_path(@socket)
48
+ pid = fork do
49
+ require 'socket'
50
+ sock = UNIXSocket.new(@socket_abs)
51
+ begin
52
+ sock.recv_io
53
+ rescue SocketError => err
54
+ execute(notify_command)
55
+ Process.exit(0)
56
+ end
57
+ end
58
+ Process.detach(pid)
45
59
  end
46
60
 
47
61
  private
48
62
 
63
+ def default_message
64
+ "'`#{@command}` finished.'"
65
+ end
66
+
49
67
  def execute(command)
50
68
  `#{command}`
51
69
  end
@@ -58,7 +76,7 @@ module Dtachr
58
76
 
59
77
  def notify_command
60
78
  notifier = "terminal-notifier"
61
- message = '-message ' + (@opts['--message'] || "'`#{@command}` finished.'")
79
+ message = "-message \"#{@message}\""
62
80
  title = @opts['--title'].dup if !@opts['--title'].nil?
63
81
  title.insert(0, '-title ') if !title.nil? && title.length > 0
64
82
  [notifier, title, message].join(' ')
metadata CHANGED
@@ -1,95 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dtachr
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 5
10
- version: 0.0.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Bryan Swift
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-11-15 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2014-02-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: docopt
16
+ requirement: !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 11
28
- segments:
29
- - 0
30
- - 5
31
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
32
21
  version: 0.5.0
33
22
  - - <
34
- - !ruby/object:Gem::Version
35
- hash: 23
36
- segments:
37
- - 1
38
- - 0
39
- - 0
23
+ - !ruby/object:Gem::Version
40
24
  version: 1.0.0
41
25
  type: :runtime
42
- name: docopt
43
- version_requirements: *id001
44
26
  prerelease: false
45
- - !ruby/object:Gem::Dependency
46
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.5.0
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: 1.0.0
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: !ruby/object:Gem::Requirement
47
39
  none: false
48
- requirements:
49
- - - "="
50
- - !ruby/object:Gem::Version
51
- hash: 75
52
- segments:
53
- - 10
54
- - 1
55
- - 0
40
+ requirements:
41
+ - - '='
42
+ - !ruby/object:Gem::Version
56
43
  version: 10.1.0
57
44
  type: :development
58
- name: rake
59
- version_requirements: *id002
60
45
  prerelease: false
61
- - !ruby/object:Gem::Dependency
62
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - '='
50
+ - !ruby/object:Gem::Version
51
+ version: 10.1.0
52
+ - !ruby/object:Gem::Dependency
53
+ name: rdoc
54
+ requirement: !ruby/object:Gem::Requirement
63
55
  none: false
64
- requirements:
65
- - - "="
66
- - !ruby/object:Gem::Version
67
- hash: 61
68
- segments:
69
- - 4
70
- - 0
71
- - 1
56
+ requirements:
57
+ - - '='
58
+ - !ruby/object:Gem::Version
72
59
  version: 4.0.1
73
60
  type: :development
74
- name: rdoc
75
- version_requirements: *id003
76
61
  prerelease: false
77
- description: |
78
- `dtachr` wraps the [dtach](http://dtach.sourceforge.net) command line utlity
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - '='
66
+ - !ruby/object:Gem::Version
67
+ version: 4.0.1
68
+ description: ! '`dtachr` wraps the [dtach](http://dtach.sourceforge.net) command line
69
+ utlity
70
+
79
71
  to automate the creation of a socket file and send a notification to
72
+
80
73
  [terminal-notifier](https://github.com/alloy/terminal-notifier). This utility
74
+
81
75
  will only work with both `dtach` and `terminal-notifier` installed and in
76
+
82
77
  PATH.
83
78
 
79
+ '
84
80
  email: bryan.j.swift@gmail.com
85
- executables:
81
+ executables:
86
82
  - dtachr
87
83
  extensions: []
88
-
89
- extra_rdoc_files:
84
+ extra_rdoc_files:
90
85
  - README.md
91
86
  - LICENSE
92
- files:
87
+ files:
93
88
  - Gemfile
94
89
  - Gemfile.lock
95
90
  - LICENSE
@@ -98,39 +93,33 @@ files:
98
93
  - bin/dtachr
99
94
  - dtachr.gemspec
100
95
  - lib/dtachr.rb
101
- has_rdoc: true
102
96
  homepage: http://github.com/bryanjswift/dtachr
103
- licenses:
97
+ licenses:
104
98
  - MIT
105
99
  post_install_message:
106
- rdoc_options:
100
+ rdoc_options:
107
101
  - --charset=UTF-8
108
- require_paths:
102
+ require_paths:
109
103
  - lib
110
- required_ruby_version: !ruby/object:Gem::Requirement
104
+ required_ruby_version: !ruby/object:Gem::Requirement
111
105
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ segments:
117
111
  - 0
118
- version: "0"
119
- required_rubygems_version: !ruby/object:Gem::Requirement
112
+ hash: 4574881616705672769
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
114
  none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 0
127
- version: "0"
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
128
119
  requirements: []
129
-
130
120
  rubyforge_project: dtachr
131
- rubygems_version: 1.6.2
121
+ rubygems_version: 1.8.23
132
122
  signing_key:
133
123
  specification_version: 2
134
124
  summary: Wrapper for `dtach` utility.
135
125
  test_files: []
136
-