terminal-notifier 1.4.2 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +2 -0
- data/bin/terminal-notifier +4 -0
- data/lib/terminal-notifier.rb +11 -12
- data/vendor/terminal-notifier/README.markdown +34 -12
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist +10 -10
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier +0 -0
- metadata +73 -63
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/_CodeSignature/CodeResources +0 -61
data/README.markdown
CHANGED
@@ -25,6 +25,8 @@ TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
|
25
25
|
TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
|
26
26
|
TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
27
27
|
TerminalNotifier.notify('Hello World', :group => Process.pid)
|
28
|
+
TerminalNotifier.notify('Hello World', :sender => 'com.apple.Safari')
|
29
|
+
TerminalNotifier.notify('Hello World', :sound => 'default')
|
28
30
|
|
29
31
|
TerminalNotifier.remove(Process.pid)
|
30
32
|
|
data/bin/terminal-notifier
CHANGED
data/lib/terminal-notifier.rb
CHANGED
@@ -1,21 +1,18 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
1
3
|
module TerminalNotifier
|
2
4
|
BIN_PATH = File.expand_path('../../vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier', __FILE__)
|
3
5
|
|
6
|
+
class UnsupportedPlatformError < StandardError; end
|
4
7
|
# Returns wether or not the current platform is Mac OS X 10.8, or higher.
|
5
8
|
def self.available?
|
6
|
-
|
7
|
-
@available = `uname`.strip == 'Darwin' && `sw_vers -productVersion`.strip >= '10.8'
|
8
|
-
end
|
9
|
-
@available
|
9
|
+
@available ||= `uname`.strip == 'Darwin' && `sw_vers -productVersion`.strip >= '10.8'
|
10
10
|
end
|
11
11
|
|
12
12
|
def self.execute(verbose, options)
|
13
13
|
if available?
|
14
|
-
command = [BIN_PATH, *options.map { |k,v| ["-#{k}", v
|
15
|
-
if RUBY_VERSION < '1.9'
|
16
|
-
require 'shellwords'
|
17
|
-
command = Shellwords.shelljoin(command)
|
18
|
-
end
|
14
|
+
command = [BIN_PATH, *options.map { |k,v| v = v.to_s; ["-#{k}", "#{Shellwords.escape(v[0,1])}#{v[1..-1]}"] }.flatten]
|
15
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
19
16
|
result = ''
|
20
17
|
IO.popen(command) do |stdout|
|
21
18
|
output = stdout.read
|
@@ -24,14 +21,14 @@ module TerminalNotifier
|
|
24
21
|
end
|
25
22
|
result
|
26
23
|
else
|
27
|
-
raise "terminal-notifier is only supported on Mac OS X 10.8, or higher."
|
24
|
+
raise UnsupportedPlatformError, "terminal-notifier is only supported on Mac OS X 10.8, or higher."
|
28
25
|
end
|
29
26
|
end
|
30
27
|
|
31
28
|
# Sends a User Notification and returns wether or not it was a success.
|
32
29
|
#
|
33
|
-
# The available options are `:title`, `:group`, `:activate`, `:open`,
|
34
|
-
# `:execute`. For a description of each option see:
|
30
|
+
# The available options are `:title`, `:group`, `:activate`, `:open`,
|
31
|
+
# `:execute`, `:sender`, and `:sound`. For a description of each option see:
|
35
32
|
#
|
36
33
|
# https://github.com/alloy/terminal-notifier/blob/master/README.markdown
|
37
34
|
#
|
@@ -43,6 +40,8 @@ module TerminalNotifier
|
|
43
40
|
# TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
44
41
|
# TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
|
45
42
|
# TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
43
|
+
# TerminalNotifier.notify('Hello World', :sender => 'com.apple.Safari')
|
44
|
+
# TerminalNotifier.notify('Hello World', :sound => 'default')
|
46
45
|
#
|
47
46
|
# Raises if not supported on the current platform.
|
48
47
|
def notify(message, options = {}, verbose = false)
|
@@ -1,24 +1,26 @@
|
|
1
1
|
# terminal-notifier
|
2
2
|
|
3
3
|
terminal-notifier is a command-line tool to send Mac OS X User Notifications,
|
4
|
-
which are available in Mac OS X 10.8.
|
4
|
+
which are available in Mac OS X 10.8 and higher.
|
5
5
|
|
6
|
-
It is currently packaged as an application bundle, because `NSUserNotification`
|
7
|
-
does not work from a ‘Foundation tool’. [radar://11956694](radar://11956694)
|
8
6
|
|
9
|
-
|
10
|
-
currently no way to specify a custom icon for a notification. The only way to
|
11
|
-
use this tool with your own icon is to include a build of terminal-notifier
|
12
|
-
with your icon instead.
|
7
|
+
## Caveats
|
13
8
|
|
14
|
-
|
15
|
-
|
9
|
+
* The Notification Center _always_ uses the application’s own icon, there’s
|
10
|
+
currently no way to specify a custom icon for a notification. The only way to
|
11
|
+
use this tool with your own icon is to use the `-sender` option or include a
|
12
|
+
build of terminal-notifier with your icon and bundle identifier instead.
|
13
|
+
|
14
|
+
However, you _can_ use unicode symbols and emojis. See the examples.
|
15
|
+
|
16
|
+
* It is currently packaged as an application bundle, because `NSUserNotification`
|
17
|
+
does not work from a ‘Foundation tool’. [radar://11956694](radar://11956694)
|
16
18
|
|
17
19
|
|
18
20
|
## Download
|
19
21
|
|
20
|
-
Prebuilt binaries
|
21
|
-
|
22
|
+
Prebuilt binaries are available from the
|
23
|
+
[releases section](https://github.com/alloy/terminal-notifier/releases).
|
22
24
|
|
23
25
|
Or if you want to use this from
|
24
26
|
[Ruby](https://github.com/alloy/terminal-notifier/tree/master/Ruby), you can
|
@@ -47,6 +49,14 @@ $ terminal-notifier -[message|group|list] [VALUE|ID|ID] [options]
|
|
47
49
|
|
48
50
|
This will obviously be a bit slower than using the tool without the wrapper.
|
49
51
|
|
52
|
+
Some examples are:
|
53
|
+
|
54
|
+
```
|
55
|
+
$ echo 'Piped Message Data!' | terminal-notifier -sound default
|
56
|
+
$ terminal-notifier -title '💰' -message 'Check your Apple stock!' -open 'http://finance.yahoo.com/q?s=AAPL'
|
57
|
+
$ terminal-notifier -group 'address-book-sync' -title 'Address Book Sync' -subtitle 'Finished' -message 'Imported 42 contacts.' -activate 'com.apple.AddressBook'
|
58
|
+
```
|
59
|
+
|
50
60
|
|
51
61
|
#### Options
|
52
62
|
|
@@ -59,6 +69,9 @@ option or the `-list` option.
|
|
59
69
|
|
60
70
|
The message body of the notification.
|
61
71
|
|
72
|
+
Note that if this option is omitted and data is piped to the application, that
|
73
|
+
data will be used instead.
|
74
|
+
|
62
75
|
-------------------------------------------------------------------------------
|
63
76
|
|
64
77
|
`-title VALUE`
|
@@ -120,6 +133,15 @@ Examples are:
|
|
120
133
|
|
121
134
|
-------------------------------------------------------------------------------
|
122
135
|
|
136
|
+
`-sender ID`
|
137
|
+
|
138
|
+
Specifying this will make it appear as if the notification was send by that
|
139
|
+
application instead, including using its icon.
|
140
|
+
|
141
|
+
For information on the `ID` see the `-activate` option.
|
142
|
+
|
143
|
+
-------------------------------------------------------------------------------
|
144
|
+
|
123
145
|
`-open URL`
|
124
146
|
|
125
147
|
Specifies a resource to be opened when the user clicks the notification. This
|
@@ -138,7 +160,7 @@ All the works are available under the MIT license. **Except** for
|
|
138
160
|
‘Terminal.icns’, which is a copy of Apple’s Terminal.app icon and as such is
|
139
161
|
copyright of Apple.
|
140
162
|
|
141
|
-
Copyright (C) 2012 Eloy Durán <eloy.de.enige@gmail.com>
|
163
|
+
Copyright (C) 2012-2013 Eloy Durán <eloy.de.enige@gmail.com>
|
142
164
|
|
143
165
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
144
166
|
this software and associated documentation files (the "Software"), to deal in
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<plist version="1.0">
|
4
4
|
<dict>
|
5
5
|
<key>BuildMachineOSBuild</key>
|
6
|
-
<string>
|
6
|
+
<string>12E55</string>
|
7
7
|
<key>CFBundleDevelopmentRegion</key>
|
8
8
|
<string>en</string>
|
9
9
|
<key>CFBundleExecutable</key>
|
@@ -19,31 +19,31 @@
|
|
19
19
|
<key>CFBundlePackageType</key>
|
20
20
|
<string>APPL</string>
|
21
21
|
<key>CFBundleShortVersionString</key>
|
22
|
-
<string>1.
|
22
|
+
<string>1.5.0</string>
|
23
23
|
<key>CFBundleSignature</key>
|
24
24
|
<string>????</string>
|
25
25
|
<key>CFBundleVersion</key>
|
26
|
-
<string>
|
26
|
+
<string>8</string>
|
27
27
|
<key>DTCompiler</key>
|
28
|
-
<string
|
28
|
+
<string>com.apple.compilers.llvm.clang.1_0</string>
|
29
29
|
<key>DTPlatformBuild</key>
|
30
|
-
<string>
|
30
|
+
<string>5A11365x</string>
|
31
31
|
<key>DTPlatformVersion</key>
|
32
32
|
<string>GM</string>
|
33
33
|
<key>DTSDKBuild</key>
|
34
|
-
<string>
|
34
|
+
<string>13A538c</string>
|
35
35
|
<key>DTSDKName</key>
|
36
|
-
<string>macosx10.
|
36
|
+
<string>macosx10.9</string>
|
37
37
|
<key>DTXcode</key>
|
38
|
-
<string>
|
38
|
+
<string>0500</string>
|
39
39
|
<key>DTXcodeBuild</key>
|
40
|
-
<string>
|
40
|
+
<string>5A11365x</string>
|
41
41
|
<key>LSMinimumSystemVersion</key>
|
42
42
|
<string>10.8</string>
|
43
43
|
<key>LSUIElement</key>
|
44
44
|
<true/>
|
45
45
|
<key>NSHumanReadableCopyright</key>
|
46
|
-
<string>Copyright © 2012 Eloy
|
46
|
+
<string>Copyright © 2012 Eloy Durán. All rights reserved.</string>
|
47
47
|
<key>NSMainNibFile</key>
|
48
48
|
<string>MainMenu</string>
|
49
49
|
<key>NSPrincipalClass</key>
|
Binary file
|
metadata
CHANGED
@@ -1,77 +1,77 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-notifier
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 1.5.0
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Eloy Duran
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-08-24 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: bacon
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :development
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
38
32
|
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: mocha
|
39
36
|
prerelease: false
|
40
|
-
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
38
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
54
46
|
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: mocha-on-bacon
|
55
50
|
prerelease: false
|
56
|
-
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
52
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
62
|
description:
|
63
|
-
email:
|
63
|
+
email:
|
64
64
|
- eloy.de.enige@gmail.com
|
65
|
-
executables:
|
65
|
+
executables:
|
66
66
|
- terminal-notifier
|
67
67
|
extensions: []
|
68
|
-
|
68
|
+
|
69
|
+
extra_rdoc_files:
|
69
70
|
- README.markdown
|
70
|
-
files:
|
71
|
+
files:
|
71
72
|
- bin/terminal-notifier
|
72
73
|
- lib/terminal-notifier.rb
|
73
74
|
- vendor/terminal-notifier/README.markdown
|
74
|
-
- vendor/terminal-notifier/terminal-notifier.app/Contents/_CodeSignature/CodeResources
|
75
75
|
- vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist
|
76
76
|
- vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier
|
77
77
|
- vendor/terminal-notifier/terminal-notifier.app/Contents/PkgInfo
|
@@ -82,27 +82,37 @@ files:
|
|
82
82
|
- README.markdown
|
83
83
|
homepage: https://github.com/alloy/terminal-notifier
|
84
84
|
licenses: []
|
85
|
+
|
85
86
|
post_install_message:
|
86
87
|
rdoc_options: []
|
87
|
-
|
88
|
+
|
89
|
+
require_paths:
|
88
90
|
- lib
|
89
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
92
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
hash: 3
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
version: "0"
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
101
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
101
109
|
requirements: []
|
110
|
+
|
102
111
|
rubyforge_project:
|
103
|
-
rubygems_version: 1.8.
|
112
|
+
rubygems_version: 1.8.24
|
104
113
|
signing_key:
|
105
114
|
specification_version: 3
|
106
|
-
summary: Send User Notifications on Mac OS X 10.8.
|
115
|
+
summary: Send User Notifications on Mac OS X 10.8 or higher.
|
107
116
|
test_files: []
|
117
|
+
|
108
118
|
has_rdoc:
|
@@ -1,61 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
-
<plist version="1.0">
|
4
|
-
<dict>
|
5
|
-
<key>files</key>
|
6
|
-
<dict>
|
7
|
-
<key>Resources/Terminal.icns</key>
|
8
|
-
<data>
|
9
|
-
Oq9GtJM1DqcGF1JCHiEgb0hoN6I=
|
10
|
-
</data>
|
11
|
-
<key>Resources/en.lproj/Credits.rtf</key>
|
12
|
-
<dict>
|
13
|
-
<key>hash</key>
|
14
|
-
<data>
|
15
|
-
YKJIFIsxneJuNkJNJQIcJIjiPOg=
|
16
|
-
</data>
|
17
|
-
<key>optional</key>
|
18
|
-
<true/>
|
19
|
-
</dict>
|
20
|
-
<key>Resources/en.lproj/InfoPlist.strings</key>
|
21
|
-
<dict>
|
22
|
-
<key>hash</key>
|
23
|
-
<data>
|
24
|
-
MiLKDDnrUKr4EmuvhS5VQwxHGK8=
|
25
|
-
</data>
|
26
|
-
<key>optional</key>
|
27
|
-
<true/>
|
28
|
-
</dict>
|
29
|
-
<key>Resources/en.lproj/MainMenu.nib</key>
|
30
|
-
<dict>
|
31
|
-
<key>hash</key>
|
32
|
-
<data>
|
33
|
-
N1QqAM17vgDk7XNtv27koaE4IhE=
|
34
|
-
</data>
|
35
|
-
<key>optional</key>
|
36
|
-
<true/>
|
37
|
-
</dict>
|
38
|
-
</dict>
|
39
|
-
<key>rules</key>
|
40
|
-
<dict>
|
41
|
-
<key>^Resources/</key>
|
42
|
-
<true/>
|
43
|
-
<key>^Resources/.*\.lproj/</key>
|
44
|
-
<dict>
|
45
|
-
<key>optional</key>
|
46
|
-
<true/>
|
47
|
-
<key>weight</key>
|
48
|
-
<real>1000</real>
|
49
|
-
</dict>
|
50
|
-
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
51
|
-
<dict>
|
52
|
-
<key>omit</key>
|
53
|
-
<true/>
|
54
|
-
<key>weight</key>
|
55
|
-
<real>1100</real>
|
56
|
-
</dict>
|
57
|
-
<key>^version.plist$</key>
|
58
|
-
<true/>
|
59
|
-
</dict>
|
60
|
-
</dict>
|
61
|
-
</plist>
|