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.
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
+ }