terminal-notifier 1.8.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|