bunchcli 1.1.6 → 1.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a8a77faa358820416820ef2bd81752c699bfdc5f4d94b634833b85b4f740c9f
4
- data.tar.gz: a32335c4354e2a0958192d670c8a7d348ca283a1b077489c79e0c694fcd94acb
3
+ metadata.gz: b2530126243a46b0988296fa99b222a492b5dd13db8280526634f8bb0a6b9d9b
4
+ data.tar.gz: da78a9df0845088fb8604fb7c9b40ec4dff2e498cbe0e6ab04f7828c3629eb79
5
5
  SHA512:
6
- metadata.gz: 067dd0a90cf0464744465b378540c7ee9271f5d8571b1ff5116588402c22800d3a85e4c0d3f4e3c5f8fa779f3004deecccc256fb4640b937b6d9723bb87c9a20
7
- data.tar.gz: 6782b96d641b539cb465645d7d881300ec88e0a40f894fb5a2a9ff964671863e51a3251135f9084856d4f9a8747192b633906f7d98bb69ca67cb25125c7977c8
6
+ metadata.gz: aff4ef65e0f00f815c2daa511cbd6e611f8e5f52e478fdaa881e3e41694ad7b4157ca10e4e76e510a7fe276ea6743b1ebba88419f62e80c96392d944aba1abe6
7
+ data.tar.gz: 7e5b1ba166e51e181fc260afe5e8c97fbea6bf0746f86a735a1bf5afbd0fa6e406fb6c2167b8fb7da7fe00affcca29437daa6157eac02a302c5ee19b1f6735c8
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
  /vendor/
10
+ Gemfile.lock
data/CHANGELOG.md CHANGED
@@ -1,4 +1,8 @@
1
- ### 1.1.6
1
+ ### 1.1.11pre
2
+
3
+ - Fix for Terminal when checking for bundle id
4
+
5
+ ### 1.1.7
2
6
 
3
7
  - Bugfix
4
8
 
data/lib/bunch.rb CHANGED
@@ -1,9 +1,11 @@
1
1
  CACHE_TIME = 86400 #seconds, 1 day = 86400
2
2
  CACHE_FILE = "~/.bunch_cli_cache"
3
+ TARGET_APP = "Bunch Beta"
4
+
5
+ TARGET_URL = TARGET_APP == 'Bunch Beta' ? 'x-bunch-beta' : 'x-bunch'
3
6
 
4
7
  require "bunch/version"
5
8
  require 'yaml'
6
9
  require 'cgi'
7
10
  require 'bunch/url_generator'
8
- require 'term-colorizer'
9
11
  require 'bunch/bunchCLI'
@@ -69,10 +69,11 @@ class Bunch
69
69
  # items.push({title: 0})
70
70
  def generate_bunch_list
71
71
  items = []
72
- Dir.glob(File.join(bunch_dir, '*.bunch')).each do |f|
72
+ `osascript -e 'tell app "#{TARGET_APP}" to list bunches'`.strip.split(/,/).each do |b|
73
+ b.strip!
73
74
  items.push(
74
- path: f,
75
- title: File.basename(f, '.bunch')
75
+ path: File.join(bunch_dir, b + '.bunch'),
76
+ title: b
76
77
  )
77
78
  end
78
79
  items
@@ -80,13 +81,15 @@ class Bunch
80
81
 
81
82
  def bunch_dir
82
83
  @bunch_dir ||= begin
83
- dir = `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist configDir`.strip
84
+ dir = `osascript -e 'tell app "#{TARGET_APP}" to get preference "Folder"'`.strip
85
+ # dir = `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist configDir`.strip
84
86
  File.expand_path(dir)
85
87
  end
86
88
  end
87
89
 
88
90
  def url_method
89
- @url_method ||= `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist toggleBunches`.strip == '1' ? 'toggle' : 'open'
91
+ @url_method ||= `osascript -e 'tell app "#{TARGET_APP}" to get preference "Toggle"'`.strip == '1' ? 'toggle' : 'open'
92
+ # @url_method ||= `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist toggleBunches`.strip == '1' ? 'toggle' : 'open'
90
93
  end
91
94
 
92
95
  def bunches
@@ -96,15 +99,15 @@ class Bunch
96
99
  def url(bunch)
97
100
  params = "&x-success=#{@success}" if @success
98
101
  if url_method == 'file'
99
- %(x-bunch://raw?file=#{bunch}#{params})
102
+ %(#{TARGET_URL}://raw?file=#{bunch}#{params})
100
103
  elsif url_method == 'raw'
101
- %(x-bunch://raw?txt=#{bunch}#{params})
104
+ %(#{TARGET_URL}://raw?txt=#{bunch}#{params})
102
105
  elsif url_method == 'snippet'
103
- %(x-bunch://snippet?file=#{bunch}#{params})
106
+ %(#{TARGET_URL}://snippet?file=#{bunch}#{params})
104
107
  elsif url_method == 'setPref'
105
- %(x-bunch://setPref?#{bunch})
108
+ %(#{TARGET_URL}://setPref?#{bunch})
106
109
  else
107
- %(x-bunch://#{url_method}?bunch=#{bunch[:title]}#{params})
110
+ %(#{TARGET_URL}://#{url_method}?bunch=#{bunch}#{params})
108
111
  end
109
112
  end
110
113
 
@@ -150,7 +153,7 @@ EOF
150
153
  launch_if_needed
151
154
  # get front app
152
155
  front_app = %x{osascript -e 'tell application "System Events" to return name of first application process whose frontmost is true'}.strip
153
- bid = bundle_id(front_app)
156
+ bid = bundle_id(front_app) rescue false
154
157
  @success = bid if (bid)
155
158
 
156
159
  if @url_method == 'raw'
@@ -187,25 +190,32 @@ EOF
187
190
  end
188
191
  else
189
192
  bunch = find_bunch(str)
193
+ params = []
194
+ params << "fragment=#{CGI.escape(@fragment)}" if @fragment
195
+ params.concat(variable_query) if @variables
190
196
  unless bunch
191
197
  if File.exists?(str)
192
198
  @url_method = 'file'
199
+ _url = url(str)
200
+ _url += '&' + params.join('&') if params.length
193
201
  if @show_url
194
- $stdout.puts url(str)
202
+ $stdout.puts _url
195
203
  else
196
204
  warn "Opening file"
197
- `open '#{url(str)}'`
205
+ `open '#{_url}'`
198
206
  end
199
207
  else
200
208
  warn 'No matching Bunch found'
201
209
  Process.exit 1
202
210
  end
203
211
  else
212
+ _url = url(bunch[:title])
213
+ _url += '&' + params.join('&') if params.length
204
214
  if @show_url
205
- $stdout.puts url(str)
215
+ $stdout.puts _url
206
216
  else
207
217
  warn "#{human_action} #{bunch[:title]}"
208
- `open '#{url(bunch)}'`
218
+ `open '#{_url}'`
209
219
  end
210
220
  end
211
221
  end
@@ -15,9 +15,17 @@ end
15
15
  module Util
16
16
  def bundle_id(app)
17
17
  shortname = app.sub(/\.app$/, '')
18
- apps = `mdfind -onlyin /Applications -onlyin /Applications/Setapp -onlyin /Applications/Utilities -onlyin ~/Applications -onlyin /Developer/Applications 'kMDItemKind==Application'`
18
+ apps = `mdfind -onlyin /Applications -onlyin /Applications/Setapp -onlyin /Applications/Utilities -onlyin ~/Applications -onlyin /Developer/Applications -onlyin /System/Applications 'kMDItemKind==Application'`
19
19
 
20
- foundapp = apps.split(/\n/).select! { |line| line.chomp =~ /#{shortname}\.app$/i }[0]
20
+ return false if !apps || apps.strip.length == 0
21
+
22
+ foundapps = apps.split(/\n/).select! { |line| line.chomp =~ /#{shortname}\.app$/i }
23
+
24
+ if foundapps.length > 0
25
+ foundapp = foundapps[0]
26
+ else
27
+ return false
28
+ end
21
29
 
22
30
  if foundapp
23
31
  bid = `mdls -name kMDItemCFBundleIdentifier -r "#{foundapp}"`.chomp
@@ -158,7 +166,7 @@ class BunchFinder
158
166
  attr_accessor :config_dir
159
167
 
160
168
  def initialize
161
- config_dir = `defaults read com.brettterpstra.bunch configDir`.strip
169
+ config_dir = `osascript -e 'tell app "#{TARGET_APP}" to get preference "Folder"'`.strip
162
170
  config_dir = File.expand_path(config_dir)
163
171
  if File.directory?(config_dir)
164
172
  @config_dir = config_dir
@@ -167,6 +175,15 @@ class BunchFinder
167
175
  end
168
176
  end
169
177
 
178
+ def bunches_to_items
179
+ items = []
180
+ `osascript -e 'tell app "#{TARGET_APP}" to list bunches'`.strip.split(/,/).each do |b|
181
+ filename = b.strip
182
+ items << MenuItem.new(filename, filename, filename)
183
+ end
184
+ items
185
+ end
186
+
170
187
  def files_to_items(dir, pattern)
171
188
  Dir.chdir(dir)
172
189
  items = []
@@ -180,12 +197,12 @@ class BunchFinder
180
197
  end
181
198
 
182
199
  def choose_bunch
183
- items = files_to_items(@config_dir, '*.bunch')
184
- items.map! do |item|
185
- item.title = File.basename(item.title, '.bunch')
186
- item.value = File.basename(item.title, '.bunch')
187
- item
188
- end
200
+ items = bunches_to_items
201
+ # items.map! do |item|
202
+ # item.title = File.basename(item.title, '.bunch')
203
+ # item.value = File.basename(item.title, '.bunch')
204
+ # item
205
+ # end
189
206
  menu = Menu.new(items)
190
207
  menu.choose('Select a Bunch')
191
208
  end
data/lib/bunch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BunchCLI
2
- VERSION = "1.1.6"
2
+ VERSION = "1.1.11"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bunchcli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.6
4
+ version: 1.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-03 00:00:00.000000000 Z
11
+ date: 2021-06-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -21,7 +21,6 @@ files:
21
21
  - ".gitignore"
22
22
  - CHANGELOG.md
23
23
  - Gemfile
24
- - Gemfile.lock
25
24
  - LICENSE.txt
26
25
  - README.md
27
26
  - Rakefile
@@ -53,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
54
  requirements: []
56
- rubygems_version: 3.1.4
55
+ rubygems_version: 3.2.16
57
56
  signing_key:
58
57
  specification_version: 4
59
58
  summary: A CLI for use with Bunch.app (macOS)
data/Gemfile.lock DELETED
@@ -1,21 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bunchcli (1.1.4)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- rake (12.3.3)
10
- term-colorizer (0.2.1)
11
-
12
- PLATFORMS
13
- x86_64-darwin-19
14
-
15
- DEPENDENCIES
16
- bunchcli!
17
- rake (~> 12.0)
18
- term-colorizer
19
-
20
- BUNDLED WITH
21
- 2.2.4