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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.markdown +5 -5
  3. data/lib/terminal-notifier.rb +39 -8
  4. data/vendor/terminal-notifier/LICENSE.md +9 -0
  5. data/vendor/terminal-notifier/README.markdown +256 -0
  6. data/vendor/terminal-notifier/Ruby/Gemfile +2 -0
  7. data/vendor/terminal-notifier/Ruby/Gemfile.lock +23 -0
  8. data/vendor/terminal-notifier/Ruby/LICENSE +24 -0
  9. data/vendor/terminal-notifier/Ruby/README.markdown +48 -0
  10. data/vendor/terminal-notifier/Ruby/Rakefile +48 -0
  11. data/vendor/terminal-notifier/Ruby/bin/terminal-notifier +13 -0
  12. data/vendor/terminal-notifier/Ruby/lib/terminal-notifier.rb +124 -0
  13. data/vendor/terminal-notifier/Ruby/spec/terminal-notifier_spec.rb +79 -0
  14. data/vendor/terminal-notifier/Ruby/terminal-notifier.gemspec +26 -0
  15. data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.pbxproj +315 -0
  16. data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  17. data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.xcworkspace/xcshareddata/Terminal Notifier.xccheckout +41 -0
  18. data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/xcshareddata/xcschemes/Terminal Notifier.xcscheme +140 -0
  19. data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.h +4 -0
  20. data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.m +382 -0
  21. data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist +43 -0
  22. data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Prefix.pch +7 -0
  23. data/vendor/terminal-notifier/Terminal Notifier/en.lproj/Credits.rtf +29 -0
  24. data/vendor/terminal-notifier/Terminal Notifier/en.lproj/InfoPlist.strings +2 -0
  25. data/vendor/terminal-notifier/Terminal Notifier/en.lproj/MainMenu.xib +3387 -0
  26. data/vendor/terminal-notifier/Terminal Notifier/main.m +6 -0
  27. data/vendor/terminal-notifier/Terminal.icns +0 -0
  28. data/vendor/terminal-notifier/assets/Example_1.png +0 -0
  29. data/vendor/terminal-notifier/assets/Example_2.png +0 -0
  30. data/vendor/terminal-notifier/assets/Example_3.png +0 -0
  31. data/vendor/terminal-notifier/assets/Example_4.png +0 -0
  32. data/vendor/terminal-notifier/assets/Example_5.png +0 -0
  33. data/vendor/terminal-notifier/assets/System_prefs.png +0 -0
  34. data/vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist +63 -0
  35. data/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier +0 -0
  36. data/vendor/terminal-notifier/terminal-notifier.app/Contents/PkgInfo +1 -0
  37. data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/Terminal.icns +0 -0
  38. data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/Credits.rtf +29 -0
  39. data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  40. data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/MainMenu.nib +0 -0
  41. metadata +42 -4
  42. 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
+ }