terminal-notifier 1.8.0 → 2.0.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.
- checksums.yaml +4 -4
- data/README.markdown +5 -5
- data/lib/terminal-notifier.rb +39 -8
- data/vendor/terminal-notifier/LICENSE.md +9 -0
- data/vendor/terminal-notifier/README.markdown +256 -0
- data/vendor/terminal-notifier/Ruby/Gemfile +2 -0
- data/vendor/terminal-notifier/Ruby/Gemfile.lock +23 -0
- data/vendor/terminal-notifier/Ruby/LICENSE +24 -0
- data/vendor/terminal-notifier/Ruby/README.markdown +48 -0
- data/vendor/terminal-notifier/Ruby/Rakefile +48 -0
- data/vendor/terminal-notifier/Ruby/bin/terminal-notifier +13 -0
- data/vendor/terminal-notifier/Ruby/lib/terminal-notifier.rb +124 -0
- data/vendor/terminal-notifier/Ruby/spec/terminal-notifier_spec.rb +79 -0
- data/vendor/terminal-notifier/Ruby/terminal-notifier.gemspec +26 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.pbxproj +315 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.xcworkspace/xcshareddata/Terminal Notifier.xccheckout +41 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/xcshareddata/xcschemes/Terminal Notifier.xcscheme +140 -0
- data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.h +4 -0
- data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.m +382 -0
- data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist +43 -0
- data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Prefix.pch +7 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/Credits.rtf +29 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/InfoPlist.strings +2 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/MainMenu.xib +3387 -0
- data/vendor/terminal-notifier/Terminal Notifier/main.m +6 -0
- data/vendor/terminal-notifier/Terminal.icns +0 -0
- data/vendor/terminal-notifier/assets/Example_1.png +0 -0
- data/vendor/terminal-notifier/assets/Example_2.png +0 -0
- data/vendor/terminal-notifier/assets/Example_3.png +0 -0
- data/vendor/terminal-notifier/assets/Example_4.png +0 -0
- data/vendor/terminal-notifier/assets/Example_5.png +0 -0
- data/vendor/terminal-notifier/assets/System_prefs.png +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist +63 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/PkgInfo +1 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/Terminal.icns +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/Credits.rtf +29 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/MainMenu.nib +0 -0
- metadata +42 -4
- data/vendor/terminal-notifier +0 -0
@@ -0,0 +1,48 @@
|
|
1
|
+
def version
|
2
|
+
@version ||= begin
|
3
|
+
plist = File.expand_path('../../Terminal Notifier/Terminal Notifier-Info.plist', __FILE__)
|
4
|
+
`/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' '#{plist}'`.strip
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def filename
|
9
|
+
"terminal-notifier-#{version}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def zipfile
|
13
|
+
"#{version}.zip"
|
14
|
+
end
|
15
|
+
|
16
|
+
task :clean do
|
17
|
+
rm zipfile
|
18
|
+
rm_rf 'vendor'
|
19
|
+
end
|
20
|
+
|
21
|
+
desc 'Fetch latest build from the GitHub releases'
|
22
|
+
task :update_build do
|
23
|
+
unless File.exist?(zipfile)
|
24
|
+
sh "curl -L -O 'https://github.com/julienXX/terminal-notifier/archive/#{zipfile}'"
|
25
|
+
end
|
26
|
+
|
27
|
+
rm_rf 'vendor'
|
28
|
+
mkdir 'vendor'
|
29
|
+
|
30
|
+
sh "unzip -o -d vendor #{zipfile}"
|
31
|
+
mv "vendor/#{filename}", 'vendor/terminal-notifier'
|
32
|
+
|
33
|
+
sh 'cd .. && xcodebuild -target terminal-notifier SYMROOT=build -verbose && cd -'
|
34
|
+
mv '../build/Release/terminal-notifier.app', 'vendor/terminal-notifier/'
|
35
|
+
chmod 0755, 'vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier'
|
36
|
+
end
|
37
|
+
|
38
|
+
desc 'Build gem'
|
39
|
+
task :gem => :update_build do
|
40
|
+
sh 'gem build terminal-notifier.gemspec'
|
41
|
+
end
|
42
|
+
|
43
|
+
desc 'Run specs'
|
44
|
+
task :spec do
|
45
|
+
sh 'bundle exec ruby spec/terminal-notifier_spec.rb'
|
46
|
+
end
|
47
|
+
|
48
|
+
task :default => :spec
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
if $0 == __FILE__
|
4
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'terminal-notifier'
|
8
|
+
|
9
|
+
if !ARGV.include?("-message") && !STDIN.tty?
|
10
|
+
ARGV.push(*["-message", STDIN.read.chomp])
|
11
|
+
end
|
12
|
+
|
13
|
+
exec TerminalNotifier::BIN_PATH, *ARGV
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'shellwords'
|
3
|
+
require 'rbconfig'
|
4
|
+
|
5
|
+
module TerminalNotifier
|
6
|
+
BIN_PATH = File.expand_path('../../vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier', __FILE__)
|
7
|
+
|
8
|
+
class UnsupportedPlatformError < StandardError; end
|
9
|
+
# Returns wether or not the current platform is macOS 10.10, or higher.
|
10
|
+
def self.available?
|
11
|
+
@available ||= (/darwin|mac os/ =~ RbConfig::CONFIG['host_os']) && Gem::Version.new(version) > Gem::Version.new('10.10')
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.version
|
15
|
+
@version ||= `uname`.strip == 'Darwin' && `sw_vers -productVersion`.strip
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.execute(verbose, options)
|
19
|
+
if available?
|
20
|
+
command = [BIN_PATH, *options.map { |k,v| v = v.to_s; ["-#{k}", "#{v[0] == "-" ? " " : ""}#{Shellwords.escape(v[0,1])}#{v[1..-1]}"] }.flatten]
|
21
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
22
|
+
result = ''
|
23
|
+
IO.popen(command) do |stdout|
|
24
|
+
output = stdout.read
|
25
|
+
STDOUT.print output if verbose
|
26
|
+
result << output
|
27
|
+
end
|
28
|
+
result
|
29
|
+
else
|
30
|
+
STDERR.print "terminal-notifier is only supported on macOS 10.10, or higher."
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Cleans up the result of a notification, making it easier to work it
|
35
|
+
#
|
36
|
+
# The result of a notification is downcased, then groups of 1 or more
|
37
|
+
# non-word characters are replaced with an underscore, before being
|
38
|
+
# symbolised.
|
39
|
+
#
|
40
|
+
# If the reply option was given, then instead of going through the
|
41
|
+
# above process, the result is returned with no changes as a string.
|
42
|
+
#
|
43
|
+
# If the always_string param is set to true, a the result is returned
|
44
|
+
# with no changes as a string, like above.
|
45
|
+
#
|
46
|
+
# Examples are:
|
47
|
+
#
|
48
|
+
# notify_result('Test', {}) #=> :test
|
49
|
+
# notify_result('No, sir', {}) #=> :no_sir
|
50
|
+
# notify_result('@timeout', {}) #=> :_timeout
|
51
|
+
# notify_result('@closeaction', {}) #=> :_closeaction
|
52
|
+
# notify_result('I like pie', {reply: true}) #=> 'I like pie'
|
53
|
+
# notify_result('I do not like pie', {'reply' => true}) #=> 'I do not like pie'
|
54
|
+
# notify_result('@timeout', {'reply' => true}) #=> '@timeout'
|
55
|
+
# notify_result('I may like pie', {}) #=> :i_may_like_pie
|
56
|
+
def notify_result(result, options, always_string = false)
|
57
|
+
if options[:reply] || options['reply'] || always_string
|
58
|
+
result
|
59
|
+
else
|
60
|
+
result.length == 0 || result.downcase.gsub(/\W+/,'_').to_sym
|
61
|
+
end
|
62
|
+
end
|
63
|
+
module_function :notify_result
|
64
|
+
|
65
|
+
# Sends a User Notification and returns whether or not it was a success.
|
66
|
+
#
|
67
|
+
# The available options are `:title`, `:group`, `:activate`, `:open`,
|
68
|
+
# `:execute`, `:sender`, and `:sound`. For a description of each option see:
|
69
|
+
#
|
70
|
+
# https://github.com/julienXX/terminal-notifier/blob/master/README.markdown
|
71
|
+
#
|
72
|
+
# Examples are:
|
73
|
+
#
|
74
|
+
# TerminalNotifier.notify('Hello World')
|
75
|
+
# TerminalNotifier.notify('Hello World', :title => 'Ruby')
|
76
|
+
# TerminalNotifier.notify('Hello World', :group => Process.pid)
|
77
|
+
# TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
78
|
+
# TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/julienXX')
|
79
|
+
# TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
80
|
+
# TerminalNotifier.notify('Hello World', :sender => 'com.apple.Safari')
|
81
|
+
# TerminalNotifier.notify('Hello World', :sound => 'default')
|
82
|
+
#
|
83
|
+
# Raises if not supported on the current platform.
|
84
|
+
def notify(message, options = {}, verbose = false, always_string = false)
|
85
|
+
result = TerminalNotifier.execute(verbose, options.merge(:message => message))
|
86
|
+
$? && $?.success? && notify_result(result, options, always_string)
|
87
|
+
end
|
88
|
+
module_function :notify
|
89
|
+
|
90
|
+
# Removes a notification that was previously sent with the specified
|
91
|
+
# ‘group’ ID, if one exists.
|
92
|
+
#
|
93
|
+
# If no ‘group’ ID is given, all notifications are removed.
|
94
|
+
def remove(group = 'ALL', verbose = false)
|
95
|
+
TerminalNotifier.execute(verbose, :remove => group)
|
96
|
+
$? && $?.success?
|
97
|
+
end
|
98
|
+
module_function :remove
|
99
|
+
|
100
|
+
LIST_FIELDS = [:group, :title, :subtitle, :message, :delivered_at].freeze
|
101
|
+
|
102
|
+
# If a ‘group’ ID is given, and a notification for that group exists,
|
103
|
+
# returns a hash with details about the notification.
|
104
|
+
#
|
105
|
+
# If no ‘group’ ID is given, an array of hashes describing all
|
106
|
+
# notifications.
|
107
|
+
#
|
108
|
+
# If no information is available this will return `nil`.
|
109
|
+
def list(group = 'ALL', verbose = false)
|
110
|
+
output = TerminalNotifier.execute(verbose, :list => group)
|
111
|
+
return if output.strip.empty?
|
112
|
+
|
113
|
+
require 'time'
|
114
|
+
notifications = output.split("\n")[1..-1].map do |line|
|
115
|
+
LIST_FIELDS.zip(line.split("\t")).inject({}) do |hash, (key, value)|
|
116
|
+
hash[key] = key == :delivered_at ? Time.parse(value) : (value unless value == '(null)')
|
117
|
+
hash
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
group == 'ALL' ? notifications : notifications.first
|
122
|
+
end
|
123
|
+
module_function :list
|
124
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bacon'
|
3
|
+
require 'mocha'
|
4
|
+
require 'mocha-on-bacon'
|
5
|
+
|
6
|
+
Bacon.summary_at_exit
|
7
|
+
|
8
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
9
|
+
require 'terminal-notifier'
|
10
|
+
|
11
|
+
describe "TerminalNotifier" do
|
12
|
+
it "executes the tool with the given options and properly escapes the message" do
|
13
|
+
command = [TerminalNotifier::BIN_PATH, '-message', '\[ZOMG] "OH YEAH"']
|
14
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
15
|
+
IO.expects(:popen).with(command).yields(StringIO.new('output'))
|
16
|
+
TerminalNotifier.execute(false, :message => '[ZOMG] "OH YEAH"')
|
17
|
+
end
|
18
|
+
|
19
|
+
it "correctly escapes arguments that start with a dash" do
|
20
|
+
command = [TerminalNotifier::BIN_PATH, '-message', ' -kittens', '-title', ' -rule']
|
21
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
22
|
+
IO.expects(:popen).with(command).yields(StringIO.new('output'))
|
23
|
+
TerminalNotifier.execute(false, :message => '-kittens', :title => '-rule')
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns the result output of the command" do
|
27
|
+
TerminalNotifier.execute(false, 'help' => '').should == `'#{TerminalNotifier::BIN_PATH}' -help`
|
28
|
+
end
|
29
|
+
|
30
|
+
it "sends a notification" do
|
31
|
+
TerminalNotifier.expects(:execute).with(false, :message => 'ZOMG', :group => 'important stuff')
|
32
|
+
TerminalNotifier.notify('ZOMG', :group => 'important stuff')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "removes a notification" do
|
36
|
+
TerminalNotifier.expects(:execute).with(false, :remove => 'important stuff')
|
37
|
+
TerminalNotifier.remove('important stuff')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "by default removes all the notifications" do
|
41
|
+
TerminalNotifier.expects(:execute).with(false, :remove => 'ALL')
|
42
|
+
TerminalNotifier.remove
|
43
|
+
end
|
44
|
+
|
45
|
+
it "returns `nil` if no notification was found to list info for" do
|
46
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'important stuff').returns('')
|
47
|
+
TerminalNotifier.list('important stuff').should == nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it "returns info about a notification posted in a specific group" do
|
51
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'important stuff').
|
52
|
+
returns("GroupID\tTitle\tSubtitle\tMessage\tDelivered At\n" \
|
53
|
+
"important stuff\tTerminal\t(null)\tExecute: rake spec\t2012-08-06 19:45:30 +0000")
|
54
|
+
TerminalNotifier.list('important stuff').should == {
|
55
|
+
:group => 'important stuff',
|
56
|
+
:title => 'Terminal', :subtitle => nil, :message => 'Execute: rake spec',
|
57
|
+
:delivered_at => Time.parse('2012-08-06 19:45:30 +0000')
|
58
|
+
}
|
59
|
+
end
|
60
|
+
|
61
|
+
it "by default returns a list of all notification" do
|
62
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'ALL').
|
63
|
+
returns("GroupID\tTitle\tSubtitle\tMessage\tDelivered At\n" \
|
64
|
+
"important stuff\tTerminal\t(null)\tExecute: rake spec\t2012-08-06 19:45:30 +0000\n" \
|
65
|
+
"(null)\t(null)\tSubtle\tBe subtle!\t2012-08-07 19:45:30 +0000")
|
66
|
+
TerminalNotifier.list.should == [
|
67
|
+
{
|
68
|
+
:group => 'important stuff',
|
69
|
+
:title => 'Terminal', :subtitle => nil, :message => 'Execute: rake spec',
|
70
|
+
:delivered_at => Time.parse('2012-08-06 19:45:30 +0000')
|
71
|
+
},
|
72
|
+
{
|
73
|
+
:group => nil,
|
74
|
+
:title => nil, :subtitle => 'Subtle', :message => 'Be subtle!',
|
75
|
+
:delivered_at => Time.parse('2012-08-07 19:45:30 +0000')
|
76
|
+
}
|
77
|
+
]
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
plist = File.expand_path('../../Terminal Notifier/Terminal Notifier-Info.plist', __FILE__)
|
3
|
+
# Also run on non-OSX machines, otherwise bundle installs directly from the repo will fail.
|
4
|
+
# version = `/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' '#{plist}'`.strip
|
5
|
+
version = File.read(plist).match(%r{<string>(\d+\.\d+\.\d+)</string>})[1]
|
6
|
+
|
7
|
+
|
8
|
+
Gem::Specification.new do |gem|
|
9
|
+
gem.name = "terminal-notifier"
|
10
|
+
gem.version = version
|
11
|
+
gem.summary = 'Send User Notifications on macOS 10.10 or higher.'
|
12
|
+
gem.authors = ["Eloy Duran", "Julien Blanchard"]
|
13
|
+
gem.email = ["eloy.de.enige@gmail.com", "julien@sideburns.eu"]
|
14
|
+
gem.homepage = 'https://github.com/julienXX/terminal-notifier'
|
15
|
+
gem.license = 'MIT'
|
16
|
+
|
17
|
+
gem.executables = ['terminal-notifier']
|
18
|
+
gem.files = ['bin/terminal-notifier', 'lib/terminal-notifier.rb'] + Dir.glob('vendor/terminal-notifier/**/*')
|
19
|
+
gem.require_paths = ['lib']
|
20
|
+
|
21
|
+
gem.extra_rdoc_files = ['README.markdown']
|
22
|
+
|
23
|
+
gem.add_development_dependency 'bacon'
|
24
|
+
gem.add_development_dependency 'mocha'
|
25
|
+
gem.add_development_dependency 'mocha-on-bacon'
|
26
|
+
end
|
@@ -0,0 +1,315 @@
|
|
1
|
+
// !$*UTF8*$!
|
2
|
+
{
|
3
|
+
archiveVersion = 1;
|
4
|
+
classes = {
|
5
|
+
};
|
6
|
+
objectVersion = 46;
|
7
|
+
objects = {
|
8
|
+
|
9
|
+
/* Begin PBXBuildFile section */
|
10
|
+
5199791915B1F92B003AFC57 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5199791815B1F92B003AFC57 /* Cocoa.framework */; };
|
11
|
+
5199792315B1F92B003AFC57 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5199792115B1F92B003AFC57 /* InfoPlist.strings */; };
|
12
|
+
5199792515B1F92B003AFC57 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5199792415B1F92B003AFC57 /* main.m */; };
|
13
|
+
5199792915B1F92B003AFC57 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 5199792715B1F92B003AFC57 /* Credits.rtf */; };
|
14
|
+
5199792C15B1F92B003AFC57 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5199792B15B1F92B003AFC57 /* AppDelegate.m */; };
|
15
|
+
5199792F15B1F92B003AFC57 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5199792D15B1F92B003AFC57 /* MainMenu.xib */; };
|
16
|
+
5199794215B2F908003AFC57 /* ScriptingBridge.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5199794115B2F908003AFC57 /* ScriptingBridge.framework */; };
|
17
|
+
5199794C15B302F1003AFC57 /* Terminal.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5199794B15B302F1003AFC57 /* Terminal.icns */; };
|
18
|
+
/* End PBXBuildFile section */
|
19
|
+
|
20
|
+
/* Begin PBXFileReference section */
|
21
|
+
5199791415B1F92B003AFC57 /* terminal-notifier.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "terminal-notifier.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
22
|
+
5199791815B1F92B003AFC57 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
23
|
+
5199791B15B1F92B003AFC57 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
|
24
|
+
5199791C15B1F92B003AFC57 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
25
|
+
5199791D15B1F92B003AFC57 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
26
|
+
5199792015B1F92B003AFC57 /* Terminal Notifier-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Terminal Notifier-Info.plist"; sourceTree = "<group>"; };
|
27
|
+
5199792215B1F92B003AFC57 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
28
|
+
5199792415B1F92B003AFC57 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
29
|
+
5199792615B1F92B003AFC57 /* Terminal Notifier-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Terminal Notifier-Prefix.pch"; sourceTree = "<group>"; };
|
30
|
+
5199792815B1F92B003AFC57 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
|
31
|
+
5199792A15B1F92B003AFC57 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
32
|
+
5199792B15B1F92B003AFC57 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
33
|
+
5199792E15B1F92B003AFC57 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
34
|
+
5199794115B2F908003AFC57 /* ScriptingBridge.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ScriptingBridge.framework; path = System/Library/Frameworks/ScriptingBridge.framework; sourceTree = SDKROOT; };
|
35
|
+
5199794B15B302F1003AFC57 /* Terminal.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Terminal.icns; sourceTree = "<group>"; };
|
36
|
+
/* End PBXFileReference section */
|
37
|
+
|
38
|
+
/* Begin PBXFrameworksBuildPhase section */
|
39
|
+
5199791115B1F92B003AFC57 /* Frameworks */ = {
|
40
|
+
isa = PBXFrameworksBuildPhase;
|
41
|
+
buildActionMask = 2147483647;
|
42
|
+
files = (
|
43
|
+
5199794215B2F908003AFC57 /* ScriptingBridge.framework in Frameworks */,
|
44
|
+
5199791915B1F92B003AFC57 /* Cocoa.framework in Frameworks */,
|
45
|
+
);
|
46
|
+
runOnlyForDeploymentPostprocessing = 0;
|
47
|
+
};
|
48
|
+
/* End PBXFrameworksBuildPhase section */
|
49
|
+
|
50
|
+
/* Begin PBXGroup section */
|
51
|
+
5199790915B1F92B003AFC57 = {
|
52
|
+
isa = PBXGroup;
|
53
|
+
children = (
|
54
|
+
5199794B15B302F1003AFC57 /* Terminal.icns */,
|
55
|
+
5199794115B2F908003AFC57 /* ScriptingBridge.framework */,
|
56
|
+
5199791E15B1F92B003AFC57 /* Terminal Notifier */,
|
57
|
+
5199791715B1F92B003AFC57 /* Frameworks */,
|
58
|
+
5199791515B1F92B003AFC57 /* Products */,
|
59
|
+
);
|
60
|
+
sourceTree = "<group>";
|
61
|
+
};
|
62
|
+
5199791515B1F92B003AFC57 /* Products */ = {
|
63
|
+
isa = PBXGroup;
|
64
|
+
children = (
|
65
|
+
5199791415B1F92B003AFC57 /* terminal-notifier.app */,
|
66
|
+
);
|
67
|
+
name = Products;
|
68
|
+
sourceTree = "<group>";
|
69
|
+
};
|
70
|
+
5199791715B1F92B003AFC57 /* Frameworks */ = {
|
71
|
+
isa = PBXGroup;
|
72
|
+
children = (
|
73
|
+
5199791815B1F92B003AFC57 /* Cocoa.framework */,
|
74
|
+
5199791A15B1F92B003AFC57 /* Other Frameworks */,
|
75
|
+
);
|
76
|
+
name = Frameworks;
|
77
|
+
sourceTree = "<group>";
|
78
|
+
};
|
79
|
+
5199791A15B1F92B003AFC57 /* Other Frameworks */ = {
|
80
|
+
isa = PBXGroup;
|
81
|
+
children = (
|
82
|
+
5199791B15B1F92B003AFC57 /* AppKit.framework */,
|
83
|
+
5199791C15B1F92B003AFC57 /* CoreData.framework */,
|
84
|
+
5199791D15B1F92B003AFC57 /* Foundation.framework */,
|
85
|
+
);
|
86
|
+
name = "Other Frameworks";
|
87
|
+
sourceTree = "<group>";
|
88
|
+
};
|
89
|
+
5199791E15B1F92B003AFC57 /* Terminal Notifier */ = {
|
90
|
+
isa = PBXGroup;
|
91
|
+
children = (
|
92
|
+
5199792A15B1F92B003AFC57 /* AppDelegate.h */,
|
93
|
+
5199792B15B1F92B003AFC57 /* AppDelegate.m */,
|
94
|
+
5199792D15B1F92B003AFC57 /* MainMenu.xib */,
|
95
|
+
5199791F15B1F92B003AFC57 /* Supporting Files */,
|
96
|
+
);
|
97
|
+
path = "Terminal Notifier";
|
98
|
+
sourceTree = "<group>";
|
99
|
+
};
|
100
|
+
5199791F15B1F92B003AFC57 /* Supporting Files */ = {
|
101
|
+
isa = PBXGroup;
|
102
|
+
children = (
|
103
|
+
5199792015B1F92B003AFC57 /* Terminal Notifier-Info.plist */,
|
104
|
+
5199792115B1F92B003AFC57 /* InfoPlist.strings */,
|
105
|
+
5199792415B1F92B003AFC57 /* main.m */,
|
106
|
+
5199792615B1F92B003AFC57 /* Terminal Notifier-Prefix.pch */,
|
107
|
+
5199792715B1F92B003AFC57 /* Credits.rtf */,
|
108
|
+
);
|
109
|
+
name = "Supporting Files";
|
110
|
+
sourceTree = "<group>";
|
111
|
+
};
|
112
|
+
/* End PBXGroup section */
|
113
|
+
|
114
|
+
/* Begin PBXNativeTarget section */
|
115
|
+
5199791315B1F92B003AFC57 /* terminal-notifier */ = {
|
116
|
+
isa = PBXNativeTarget;
|
117
|
+
buildConfigurationList = 5199793215B1F92B003AFC57 /* Build configuration list for PBXNativeTarget "terminal-notifier" */;
|
118
|
+
buildPhases = (
|
119
|
+
5199791015B1F92B003AFC57 /* Sources */,
|
120
|
+
5199791115B1F92B003AFC57 /* Frameworks */,
|
121
|
+
5199791215B1F92B003AFC57 /* Resources */,
|
122
|
+
);
|
123
|
+
buildRules = (
|
124
|
+
);
|
125
|
+
dependencies = (
|
126
|
+
);
|
127
|
+
name = "terminal-notifier";
|
128
|
+
productName = "Terminal Notifier";
|
129
|
+
productReference = 5199791415B1F92B003AFC57 /* terminal-notifier.app */;
|
130
|
+
productType = "com.apple.product-type.application";
|
131
|
+
};
|
132
|
+
/* End PBXNativeTarget section */
|
133
|
+
|
134
|
+
/* Begin PBXProject section */
|
135
|
+
5199790B15B1F92B003AFC57 /* Project object */ = {
|
136
|
+
isa = PBXProject;
|
137
|
+
attributes = {
|
138
|
+
LastUpgradeCheck = 0440;
|
139
|
+
ORGANIZATIONNAME = "Eloy Durán";
|
140
|
+
};
|
141
|
+
buildConfigurationList = 5199790E15B1F92B003AFC57 /* Build configuration list for PBXProject "Terminal Notifier" */;
|
142
|
+
compatibilityVersion = "Xcode 3.2";
|
143
|
+
developmentRegion = English;
|
144
|
+
hasScannedForEncodings = 0;
|
145
|
+
knownRegions = (
|
146
|
+
en,
|
147
|
+
);
|
148
|
+
mainGroup = 5199790915B1F92B003AFC57;
|
149
|
+
productRefGroup = 5199791515B1F92B003AFC57 /* Products */;
|
150
|
+
projectDirPath = "";
|
151
|
+
projectRoot = "";
|
152
|
+
targets = (
|
153
|
+
5199791315B1F92B003AFC57 /* terminal-notifier */,
|
154
|
+
);
|
155
|
+
};
|
156
|
+
/* End PBXProject section */
|
157
|
+
|
158
|
+
/* Begin PBXResourcesBuildPhase section */
|
159
|
+
5199791215B1F92B003AFC57 /* Resources */ = {
|
160
|
+
isa = PBXResourcesBuildPhase;
|
161
|
+
buildActionMask = 2147483647;
|
162
|
+
files = (
|
163
|
+
5199792315B1F92B003AFC57 /* InfoPlist.strings in Resources */,
|
164
|
+
5199792915B1F92B003AFC57 /* Credits.rtf in Resources */,
|
165
|
+
5199792F15B1F92B003AFC57 /* MainMenu.xib in Resources */,
|
166
|
+
5199794C15B302F1003AFC57 /* Terminal.icns in Resources */,
|
167
|
+
);
|
168
|
+
runOnlyForDeploymentPostprocessing = 0;
|
169
|
+
};
|
170
|
+
/* End PBXResourcesBuildPhase section */
|
171
|
+
|
172
|
+
/* Begin PBXSourcesBuildPhase section */
|
173
|
+
5199791015B1F92B003AFC57 /* Sources */ = {
|
174
|
+
isa = PBXSourcesBuildPhase;
|
175
|
+
buildActionMask = 2147483647;
|
176
|
+
files = (
|
177
|
+
5199792515B1F92B003AFC57 /* main.m in Sources */,
|
178
|
+
5199792C15B1F92B003AFC57 /* AppDelegate.m in Sources */,
|
179
|
+
);
|
180
|
+
runOnlyForDeploymentPostprocessing = 0;
|
181
|
+
};
|
182
|
+
/* End PBXSourcesBuildPhase section */
|
183
|
+
|
184
|
+
/* Begin PBXVariantGroup section */
|
185
|
+
5199792115B1F92B003AFC57 /* InfoPlist.strings */ = {
|
186
|
+
isa = PBXVariantGroup;
|
187
|
+
children = (
|
188
|
+
5199792215B1F92B003AFC57 /* en */,
|
189
|
+
);
|
190
|
+
name = InfoPlist.strings;
|
191
|
+
sourceTree = "<group>";
|
192
|
+
};
|
193
|
+
5199792715B1F92B003AFC57 /* Credits.rtf */ = {
|
194
|
+
isa = PBXVariantGroup;
|
195
|
+
children = (
|
196
|
+
5199792815B1F92B003AFC57 /* en */,
|
197
|
+
);
|
198
|
+
name = Credits.rtf;
|
199
|
+
sourceTree = "<group>";
|
200
|
+
};
|
201
|
+
5199792D15B1F92B003AFC57 /* MainMenu.xib */ = {
|
202
|
+
isa = PBXVariantGroup;
|
203
|
+
children = (
|
204
|
+
5199792E15B1F92B003AFC57 /* en */,
|
205
|
+
);
|
206
|
+
name = MainMenu.xib;
|
207
|
+
sourceTree = "<group>";
|
208
|
+
};
|
209
|
+
/* End PBXVariantGroup section */
|
210
|
+
|
211
|
+
/* Begin XCBuildConfiguration section */
|
212
|
+
5199793015B1F92B003AFC57 /* Debug */ = {
|
213
|
+
isa = XCBuildConfiguration;
|
214
|
+
buildSettings = {
|
215
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
216
|
+
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
217
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
218
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
219
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
220
|
+
COPY_PHASE_STRIP = NO;
|
221
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
222
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
223
|
+
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
224
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
225
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
226
|
+
"DEBUG=1",
|
227
|
+
"$(inherited)",
|
228
|
+
);
|
229
|
+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
230
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
231
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
232
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
233
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
234
|
+
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
235
|
+
ONLY_ACTIVE_ARCH = YES;
|
236
|
+
SDKROOT = macosx;
|
237
|
+
};
|
238
|
+
name = Debug;
|
239
|
+
};
|
240
|
+
5199793115B1F92B003AFC57 /* Release */ = {
|
241
|
+
isa = XCBuildConfiguration;
|
242
|
+
buildSettings = {
|
243
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
244
|
+
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
245
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
246
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
247
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
248
|
+
COPY_PHASE_STRIP = YES;
|
249
|
+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
250
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
251
|
+
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
252
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
253
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
254
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
255
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
256
|
+
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
257
|
+
SDKROOT = macosx;
|
258
|
+
};
|
259
|
+
name = Release;
|
260
|
+
};
|
261
|
+
5199793315B1F92B003AFC57 /* Debug */ = {
|
262
|
+
isa = XCBuildConfiguration;
|
263
|
+
buildSettings = {
|
264
|
+
COMBINE_HIDPI_IMAGES = YES;
|
265
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
266
|
+
GCC_PREFIX_HEADER = "Terminal Notifier/Terminal Notifier-Prefix.pch";
|
267
|
+
INFOPLIST_FILE = "Terminal Notifier/Terminal Notifier-Info.plist";
|
268
|
+
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
269
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
270
|
+
PROVISIONING_PROFILE = "";
|
271
|
+
SDKROOT = macosx;
|
272
|
+
WRAPPER_EXTENSION = app;
|
273
|
+
};
|
274
|
+
name = Debug;
|
275
|
+
};
|
276
|
+
5199793415B1F92B003AFC57 /* Release */ = {
|
277
|
+
isa = XCBuildConfiguration;
|
278
|
+
buildSettings = {
|
279
|
+
COMBINE_HIDPI_IMAGES = YES;
|
280
|
+
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
281
|
+
GCC_PREFIX_HEADER = "Terminal Notifier/Terminal Notifier-Prefix.pch";
|
282
|
+
INFOPLIST_FILE = "Terminal Notifier/Terminal Notifier-Info.plist";
|
283
|
+
MACOSX_DEPLOYMENT_TARGET = 10.10;
|
284
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
285
|
+
PROVISIONING_PROFILE = "";
|
286
|
+
SDKROOT = macosx;
|
287
|
+
WRAPPER_EXTENSION = app;
|
288
|
+
};
|
289
|
+
name = Release;
|
290
|
+
};
|
291
|
+
/* End XCBuildConfiguration section */
|
292
|
+
|
293
|
+
/* Begin XCConfigurationList section */
|
294
|
+
5199790E15B1F92B003AFC57 /* Build configuration list for PBXProject "Terminal Notifier" */ = {
|
295
|
+
isa = XCConfigurationList;
|
296
|
+
buildConfigurations = (
|
297
|
+
5199793015B1F92B003AFC57 /* Debug */,
|
298
|
+
5199793115B1F92B003AFC57 /* Release */,
|
299
|
+
);
|
300
|
+
defaultConfigurationIsVisible = 0;
|
301
|
+
defaultConfigurationName = Release;
|
302
|
+
};
|
303
|
+
5199793215B1F92B003AFC57 /* Build configuration list for PBXNativeTarget "terminal-notifier" */ = {
|
304
|
+
isa = XCConfigurationList;
|
305
|
+
buildConfigurations = (
|
306
|
+
5199793315B1F92B003AFC57 /* Debug */,
|
307
|
+
5199793415B1F92B003AFC57 /* Release */,
|
308
|
+
);
|
309
|
+
defaultConfigurationIsVisible = 0;
|
310
|
+
defaultConfigurationName = Release;
|
311
|
+
};
|
312
|
+
/* End XCConfigurationList section */
|
313
|
+
};
|
314
|
+
rootObject = 5199790B15B1F92B003AFC57 /* Project object */;
|
315
|
+
}
|