terminal-notifier 1.4.2 → 1.5.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.
- 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>
|