bunchcli 1.1.6 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml 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