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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -1
- data/lib/bunch.rb +3 -1
- data/lib/bunch/bunchCLI.rb +25 -15
- data/lib/bunch/url_generator.rb +26 -9
- data/lib/bunch/version.rb +1 -1
- metadata +3 -4
- data/Gemfile.lock +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2530126243a46b0988296fa99b222a492b5dd13db8280526634f8bb0a6b9d9b
|
4
|
+
data.tar.gz: da78a9df0845088fb8604fb7c9b40ec4dff2e498cbe0e6ab04f7828c3629eb79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aff4ef65e0f00f815c2daa511cbd6e611f8e5f52e478fdaa881e3e41694ad7b4157ca10e4e76e510a7fe276ea6743b1ebba88419f62e80c96392d944aba1abe6
|
7
|
+
data.tar.gz: 7e5b1ba166e51e181fc260afe5e8c97fbea6bf0746f86a735a1bf5afbd0fa6e406fb6c2167b8fb7da7fe00affcca29437daa6157eac02a302c5ee19b1f6735c8
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
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'
|
data/lib/bunch/bunchCLI.rb
CHANGED
@@ -69,10 +69,11 @@ class Bunch
|
|
69
69
|
# items.push({title: 0})
|
70
70
|
def generate_bunch_list
|
71
71
|
items = []
|
72
|
-
|
72
|
+
`osascript -e 'tell app "#{TARGET_APP}" to list bunches'`.strip.split(/,/).each do |b|
|
73
|
+
b.strip!
|
73
74
|
items.push(
|
74
|
-
path:
|
75
|
-
title:
|
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 =
|
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 ||=
|
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
|
-
%(
|
102
|
+
%(#{TARGET_URL}://raw?file=#{bunch}#{params})
|
100
103
|
elsif url_method == 'raw'
|
101
|
-
%(
|
104
|
+
%(#{TARGET_URL}://raw?txt=#{bunch}#{params})
|
102
105
|
elsif url_method == 'snippet'
|
103
|
-
%(
|
106
|
+
%(#{TARGET_URL}://snippet?file=#{bunch}#{params})
|
104
107
|
elsif url_method == 'setPref'
|
105
|
-
%(
|
108
|
+
%(#{TARGET_URL}://setPref?#{bunch})
|
106
109
|
else
|
107
|
-
%(
|
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
|
202
|
+
$stdout.puts _url
|
195
203
|
else
|
196
204
|
warn "Opening file"
|
197
|
-
`open '#{
|
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
|
215
|
+
$stdout.puts _url
|
206
216
|
else
|
207
217
|
warn "#{human_action} #{bunch[:title]}"
|
208
|
-
`open '#{
|
218
|
+
`open '#{_url}'`
|
209
219
|
end
|
210
220
|
end
|
211
221
|
end
|
data/lib/bunch/url_generator.rb
CHANGED
@@ -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
|
-
|
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 = `
|
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 =
|
184
|
-
items.map! do |item|
|
185
|
-
|
186
|
-
|
187
|
-
|
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
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.
|
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-
|
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.
|
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
|