bunchcli 1.1.1 → 1.1.6

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: f5a5b54ca9072d61c0e990f9f87b69168a4aec155f49f77a72df0900c69d6ae8
4
- data.tar.gz: 6ed75949425a9d4e4ffbf4b4919978be42943955a1f844933a93ffc124e38af6
3
+ metadata.gz: 2a8a77faa358820416820ef2bd81752c699bfdc5f4d94b634833b85b4f740c9f
4
+ data.tar.gz: a32335c4354e2a0958192d670c8a7d348ca283a1b077489c79e0c694fcd94acb
5
5
  SHA512:
6
- metadata.gz: 49ef4d2054f5171c1ceecad6371bee24085d26c499af0c4c99439edea38490ce2df00e2518b72f22042bf092af0835b95ac6499c103b8e78537a957d50561e98
7
- data.tar.gz: 5a999f1fce45730a160c34b2b4dc61dc9723830cf619e5b6440203eb465151b39cec16665938381e5d2804b9e99686932974d7fd63c64403df203cf2a61cea8c
6
+ metadata.gz: 067dd0a90cf0464744465b378540c7ee9271f5d8571b1ff5116588402c22800d3a85e4c0d3f4e3c5f8fa779f3004deecccc256fb4640b937b6d9723bb87c9a20
7
+ data.tar.gz: 6782b96d641b539cb465645d7d881300ec88e0a40f894fb5a2a9ff964671863e51a3251135f9084856d4f9a8747192b633906f7d98bb69ca67cb25125c7977c8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ### 1.1.6
2
+
3
+ - Bugfix
4
+
5
+ ### 1.1.4
6
+
7
+ - Add `--show-config-key KEY` query for specific keys (dir, toggle, method)
8
+
9
+ ### 1.1.3
10
+
11
+ - Add --prefs option
12
+
13
+ ### 1.1.2
14
+
15
+ - Allow app name in x-success if bundle id can't be found
16
+
17
+ ### 1.1
18
+
19
+ - Add interactive URL builder
20
+ - Snippet handling
21
+
1
22
  ### 1.0
2
23
 
3
24
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bunchcli (1.1.0)
4
+ bunchcli (1.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  rake (12.3.3)
10
+ term-colorizer (0.2.1)
10
11
 
11
12
  PLATFORMS
12
13
  x86_64-darwin-19
@@ -14,6 +15,7 @@ PLATFORMS
14
15
  DEPENDENCIES
15
16
  bunchcli!
16
17
  rake (~> 12.0)
18
+ term-colorizer
17
19
 
18
20
  BUNDLED WITH
19
21
  2.2.4
data/README.md CHANGED
@@ -18,11 +18,13 @@ A CLI for [Bunch.app](https://brettterpstra.com/projects/bunch).
18
18
  --snippet Load as snippet
19
19
  --fragment=FRAGMENT Run a specific section
20
20
  --vars=VARS Variables to pass to a snippet, comma-separated
21
+ --pref Set a preference. Run without argument to list available preferences.
21
22
  -u, --url Output URL instead of opening
22
23
  -i, --interactive Interactively generate a Bunch url
23
24
  --show-config Display configuration values
24
25
  -f, --force-refresh Force refresh cached preferences
25
26
  -h, --help Display this screen
27
+ -v, --version Display Bunch version
26
28
 
27
29
  Usage: `bunch [options] BUNCH_NAME|PATH_TO_FILE`
28
30
 
data/bin/bunch CHANGED
@@ -52,6 +52,10 @@ optparse = OptionParser.new do |opts|
52
52
  bunch.variables = opt
53
53
  end
54
54
 
55
+ opts.on('--pref', 'Set a preference. Run without argument to list available preferences.') do |opt|
56
+ bunch.url_method = 'setPref'
57
+ end
58
+
55
59
  opts.on('-u', '--url', 'Output URL instead of opening') do |_opt|
56
60
  bunch.show_url = true
57
61
  end
@@ -61,11 +65,16 @@ optparse = OptionParser.new do |opts|
61
65
  Process.exit 0
62
66
  end
63
67
 
64
- opts.on('--show-config', 'Display configuration values') do |opt|
68
+ opts.on('--show-config', 'Display all configuration values') do |opt|
65
69
  bunch.show_config
66
70
  Process.exit 0
67
71
  end
68
72
 
73
+ opts.on('--show-config-key KEY', 'Display a config value [dir, toggle, method]') do |opt|
74
+ bunch.show_config(opt)
75
+ Process.exit 0
76
+ end
77
+
69
78
  opts.on('-f', '--force-refresh', 'Force refresh cached preferences') do |opt|
70
79
  bunch.update_cache
71
80
  end
@@ -88,6 +97,8 @@ unless ARGV.length > 0
88
97
  if STDIN.stat.size > 0
89
98
  bunch.url_method = 'raw'
90
99
  bunch.open(CGI.escape(STDIN.read))
100
+ elsif bunch.url_method == 'setPref'
101
+ bunch.list_preferences
91
102
  else
92
103
  puts "CLI for Bunches.app"
93
104
  help
data/lib/bunch.rb CHANGED
@@ -5,4 +5,5 @@ require "bunch/version"
5
5
  require 'yaml'
6
6
  require 'cgi'
7
7
  require 'bunch/url_generator'
8
+ require 'term-colorizer'
8
9
  require 'bunch/bunchCLI'
@@ -13,6 +13,14 @@ class Bunch
13
13
  get_cache
14
14
  end
15
15
 
16
+ def launch_if_needed
17
+ pid = `ps ax | grep 'MacOS/Bunch'|grep -v grep`.strip
18
+ if pid == ""
19
+ `open -a Bunch`
20
+ sleep 2
21
+ end
22
+ end
23
+
16
24
  def update_cache
17
25
  @bunch_dir = nil
18
26
  @url_method = nil
@@ -93,6 +101,8 @@ class Bunch
93
101
  %(x-bunch://raw?txt=#{bunch}#{params})
94
102
  elsif url_method == 'snippet'
95
103
  %(x-bunch://snippet?file=#{bunch}#{params})
104
+ elsif url_method == 'setPref'
105
+ %(x-bunch://setPref?#{bunch})
96
106
  else
97
107
  %(x-bunch://#{url_method}?bunch=#{bunch[:title]}#{params})
98
108
  end
@@ -124,7 +134,20 @@ class Bunch
124
134
  (url_method.gsub(/e$/, '') + 'ing').capitalize
125
135
  end
126
136
 
137
+ def list_preferences
138
+ prefs =<<EOF
139
+ toggleBunches=[0,1] Allow Bunches to be both opened and closed
140
+ configDir=[path] Absolute path to Bunches folder
141
+ singleBunchMode=[0,1] Close open Bunch when opening new one
142
+ preserveOpenBunches=[0,1] Restore Open Bunches on Launch
143
+ debugLevel=[0-4] Set the logging level for the Bunch Log
144
+ EOF
145
+ puts prefs
146
+ end
147
+
148
+
127
149
  def open(str)
150
+ launch_if_needed
128
151
  # get front app
129
152
  front_app = %x{osascript -e 'tell application "System Events" to return name of first application process whose frontmost is true'}.strip
130
153
  bid = bundle_id(front_app)
@@ -149,6 +172,19 @@ class Bunch
149
172
  warn "Opening snippet"
150
173
  `open '#{_url}'`
151
174
  end
175
+ elsif @url_method == 'setPref'
176
+ if str =~ /^(\w+)=([^= ]+)$/
177
+ _url = url(str)
178
+ if @show_url
179
+ $stdout.puts _url
180
+ else
181
+ warn "Setting preference #{str}"
182
+ `open '#{_url}'`
183
+ end
184
+ else
185
+ warn "Invalid key=value pair"
186
+ Process.exit 1
187
+ end
152
188
  else
153
189
  bunch = find_bunch(str)
154
190
  unless bunch
@@ -183,12 +219,21 @@ class Bunch
183
219
  puts output
184
220
  end
185
221
 
186
- def show_config
187
- puts "Bunches Folder: #{bunch_dir}"
188
- puts "Default URL Method: #{url_method}"
189
- puts "Cached Bunches"
190
- bunches.each {|b|
191
- puts " - #{b[:title]}"
192
- }
222
+ def show_config(key=nil)
223
+ case key
224
+ when /(folder|dir)/
225
+ puts bunch_dir
226
+ when /toggle/
227
+ puts url_method == 'toggle' ? 'true' : 'false'
228
+ when /method/
229
+ puts url_method
230
+ else
231
+ puts "Bunches Folder: #{bunch_dir}"
232
+ puts "Default URL Method: #{url_method}"
233
+ puts "Cached Bunches"
234
+ bunches.each {|b|
235
+ puts " - #{b[:title]}"
236
+ }
237
+ end
193
238
  end
194
239
  end
@@ -17,12 +17,13 @@ module Util
17
17
  shortname = app.sub(/\.app$/, '')
18
18
  apps = `mdfind -onlyin /Applications -onlyin /Applications/Setapp -onlyin /Applications/Utilities -onlyin ~/Applications -onlyin /Developer/Applications 'kMDItemKind==Application'`
19
19
 
20
- app = apps.split(/\n/).select! { |line| line.chomp =~ /#{shortname}\.app$/ }[0]
20
+ foundapp = apps.split(/\n/).select! { |line| line.chomp =~ /#{shortname}\.app$/i }[0]
21
21
 
22
- if app
23
- bid = `mdls -name kMDItemCFBundleIdentifier -r "#{app}"`.chomp
22
+ if foundapp
23
+ bid = `mdls -name kMDItemCFBundleIdentifier -r "#{foundapp}"`.chomp
24
24
  else
25
- warn "Could not locate bundle id for #{shortname}"
25
+ # warn "Could not locate bundle id for #{shortname}, using provided app name"
26
+ bid = app
26
27
  end
27
28
  bid
28
29
  end
data/lib/bunch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BunchCLI
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.6"
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.1
4
+ version: 1.1.6
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-01-25 00:00:00.000000000 Z
11
+ date: 2021-02-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: