dtachr 0.0.5 → 0.1.0

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.
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
-