bunchcli 1.1.7 → 1.1.12

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: 55bb9ba0a6f1c9e3b4ede2e6c204b1e9803d080a5ebde6753cabad044303a474
4
- data.tar.gz: c11edb485d0285f6badc37d11a06414a04856dfa76d01b8509a2ec189f7d696d
3
+ metadata.gz: 1eae5ef196f082cf2f09b09b42f91f5bfa2c87f023337483064549907aeb4c47
4
+ data.tar.gz: 76a96e232d5d94b12af6073a6c71d5dcd6f652cdeda6a5dad309b903f687deb1
5
5
  SHA512:
6
- metadata.gz: 2ef4e5aac1183b3eaac52647d34775f105ea2da48ddd5ea45ebeb223912f00ee1212215a9cff7caaf9cbd06e78b43cfeb1a0fe7e5b223f4f0109e1b8f3aeb520
7
- data.tar.gz: f13720b801abfe22f0d5585eeb9b9cc08dab31befa38bbaa73a6e96d0ef13d68254a7f7a0ce32d819c741a1c281380e4f0e924b3197906636a583d0b5309be4b
6
+ metadata.gz: dce1d77092144c64ff53ad79dbfbf41ce4f669428b9ab9fbf4f9f751e9eb3e538037bf66ad97e50cce88ff95125d5768707f3617a28c4acdb577f9c9987063b4
7
+ data.tar.gz: 6a0f47f065fc2d3f1bdf8a562957e9c1bc31b035698abc263892a02877974b773e16694dfb2320a815170fa6aed267bfde581ed64da84653a2d78ff2d8da7dac
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,3 +1,7 @@
1
+ ### 1.1.11pre
2
+
3
+ - Fix for Terminal when checking for bundle id
4
+
1
5
  ### 1.1.7
2
6
 
3
7
  - Bugfix
data/lib/bunch.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  CACHE_TIME = 86400 #seconds, 1 day = 86400
2
2
  CACHE_FILE = "~/.bunch_cli_cache"
3
+ TARGET_APP = "Bunch"
4
+
5
+ TARGET_URL = TARGET_APP == 'Bunch Beta' ? 'x-bunch-beta' : 'x-bunch'
3
6
 
4
7
  require "bunch/version"
5
8
  require 'yaml'
@@ -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.7"
2
+ VERSION = "1.1.12"
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.7
4
+ version: 1.1.12
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,19 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bunchcli (1.1.7)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- rake (12.3.3)
10
-
11
- PLATFORMS
12
- x86_64-darwin-19
13
-
14
- DEPENDENCIES
15
- bunchcli!
16
- rake (~> 12.0)
17
-
18
- BUNDLED WITH
19
- 2.2.4