bunchcli 1.1.3 → 1.1.9.pre

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: 4847384ea201a976c5bb01448035d0511679bd459b39453b6c9b365dc1115650
4
- data.tar.gz: 8818fdae95f080c396ec5ea9831b7fd0e5ebf68a47af58cdfbeb3948a35be411
3
+ metadata.gz: 0a0125c6936b9621c4d8252a1df185e668c8dc85c8d6ed563fd203f7f018a475
4
+ data.tar.gz: ef01962a5939067128ffd5024055561b60ee8118e09216065e3642e0a9f33c6c
5
5
  SHA512:
6
- metadata.gz: 04f82ea1c595ede5ad9ec37f33ed5a8c2a7d8e39d6dfaf91b09a5d38e1ec28b7549c5d35d8ef3983c4fe3a85107b9043a3215ab9025ba6312f6a07313fa8d483
7
- data.tar.gz: e8f1c4bf213d6d7fc375a8a3d29dc8d2c81eff6a31fab970c9bc9852b6d548de4b114794a31743c1907d297dbc10397269437aea6f429dab67e625f395023cc3
6
+ metadata.gz: 282e71d31323a1496eb98f6f06e360ca8a5564f004da13ceda9939ddf2cc5b5bc3bda694250e598f51d398796ff598461e0d9250600a1e931d332f924fa7d03a
7
+ data.tar.gz: a202098f10ef8da9c3017c5c7e61e342b59dfef5cd3cb8c6fb8725cb49923b42ff430fcc23ff4a405e57ac3cb308927d7191ac1c2c8075761629c8c6a9644a3a
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,11 @@
1
+ ### 1.1.7
2
+
3
+ - Bugfix
4
+
5
+ ### 1.1.4
6
+
7
+ - Add `--show-config-key KEY` query for specific keys (dir, toggle, method)
8
+
1
9
  ### 1.1.3
2
10
 
3
11
  - Add --prefs option
data/bin/bunch CHANGED
@@ -18,6 +18,10 @@ bunch = Bunch.new
18
18
  optparse = OptionParser.new do |opts|
19
19
  opts.banner = "CLI for Bunch.app v#{BunchCLI::VERSION}"
20
20
 
21
+ opts.on('-b', '--beta', 'Use Bunch Beta for commands') do |_opt|
22
+ bunch.target_app = 'Bunch Beta'
23
+ end
24
+
21
25
  opts.on('-l', '--list', 'List available Bunches') do |_opt|
22
26
  bunch.list_bunches
23
27
  Process.exit 0
@@ -65,11 +69,16 @@ optparse = OptionParser.new do |opts|
65
69
  Process.exit 0
66
70
  end
67
71
 
68
- opts.on('--show-config', 'Display configuration values') do |opt|
72
+ opts.on('--show-config', 'Display all configuration values') do |opt|
69
73
  bunch.show_config
70
74
  Process.exit 0
71
75
  end
72
76
 
77
+ opts.on('--show-config-key KEY', 'Display a config value [dir, toggle, method]') do |opt|
78
+ bunch.show_config(opt)
79
+ Process.exit 0
80
+ end
81
+
73
82
  opts.on('-f', '--force-refresh', 'Force refresh cached preferences') do |opt|
74
83
  bunch.update_cache
75
84
  end
@@ -1,8 +1,9 @@
1
1
  class Bunch
2
2
  include Util
3
- attr_writer :url_method, :fragment, :variables, :show_url
3
+ attr_writer :target_app, :url_method, :fragment, :variables, :show_url
4
4
 
5
5
  def initialize
6
+ @target_app = nil
6
7
  @bunch_dir = nil
7
8
  @url_method = nil
8
9
  @bunches = nil
@@ -13,15 +14,25 @@ class Bunch
13
14
  get_cache
14
15
  end
15
16
 
17
+ def launch_if_needed
18
+ pid = `ps ax | grep 'MacOS/Bunch'|grep -v grep`.strip
19
+ if pid == ""
20
+ `open -a Bunch`
21
+ sleep 2
22
+ end
23
+ end
24
+
16
25
  def update_cache
17
26
  @bunch_dir = nil
18
27
  @url_method = nil
19
28
  @bunches = nil
29
+ @target_app = nil
20
30
  target = File.expand_path(CACHE_FILE)
21
31
  settings = {
22
32
  'bunchDir' => bunch_dir,
23
33
  'method' => url_method,
24
34
  'bunches' => bunches,
35
+ 'target_app' => target_app,
25
36
  'updated' => Time.now.strftime('%s').to_i
26
37
  }
27
38
  File.open(target,'w') do |f|
@@ -44,6 +55,7 @@ class Bunch
44
55
  @bunch_dir = settings['bunchDir'] || bunch_dir
45
56
  @url_method = settings['method'] || url_method
46
57
  @bunches = settings['bunches'] || generate_bunch_list
58
+ @target_app = settings['target_app'] || target_app
47
59
  end
48
60
 
49
61
  def variable_query
@@ -61,10 +73,10 @@ class Bunch
61
73
  # items.push({title: 0})
62
74
  def generate_bunch_list
63
75
  items = []
64
- Dir.glob(File.join(bunch_dir, '*.bunch')).each do |f|
76
+ Dir.glob(File.join(bunch_dir, '**/*.bunch')).each do |f|
65
77
  items.push(
66
78
  path: f,
67
- title: File.basename(f, '.bunch')
79
+ title: f.sub(/^#{bunch_dir}\//,'').sub(/\.bunch$/,'')
68
80
  )
69
81
  end
70
82
  items
@@ -72,13 +84,19 @@ class Bunch
72
84
 
73
85
  def bunch_dir
74
86
  @bunch_dir ||= begin
75
- dir = `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist configDir`.strip
87
+ dir = `osascript -e 'tell app "#{@target_app}" to get preference "Folder"'`.strip
88
+ # dir = `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist configDir`.strip
76
89
  File.expand_path(dir)
77
90
  end
78
91
  end
79
92
 
93
+ def target_app
94
+ @target_app ||= "Bunch"
95
+ end
96
+
80
97
  def url_method
81
- @url_method ||= `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist toggleBunches`.strip == '1' ? 'toggle' : 'open'
98
+ @url_method ||= `osascript -e 'tell app "#{@target_app}" to get preference "Toggle"'`.strip == '1' ? 'toggle' : 'open'
99
+ # @url_method ||= `/usr/bin/defaults read #{ENV['HOME']}/Library/Preferences/com.brettterpstra.Bunch.plist toggleBunches`.strip == '1' ? 'toggle' : 'open'
82
100
  end
83
101
 
84
102
  def bunches
@@ -139,6 +157,7 @@ EOF
139
157
 
140
158
 
141
159
  def open(str)
160
+ launch_if_needed
142
161
  # get front app
143
162
  front_app = %x{osascript -e 'tell application "System Events" to return name of first application process whose frontmost is true'}.strip
144
163
  bid = bundle_id(front_app)
@@ -210,12 +229,21 @@ EOF
210
229
  puts output
211
230
  end
212
231
 
213
- def show_config
214
- puts "Bunches Folder: #{bunch_dir}"
215
- puts "Default URL Method: #{url_method}"
216
- puts "Cached Bunches"
217
- bunches.each {|b|
218
- puts " - #{b[:title]}"
219
- }
232
+ def show_config(key=nil)
233
+ case key
234
+ when /(folder|dir)/
235
+ puts bunch_dir
236
+ when /toggle/
237
+ puts url_method == 'toggle' ? 'true' : 'false'
238
+ when /method/
239
+ puts url_method
240
+ else
241
+ puts "Bunches Folder: #{bunch_dir}"
242
+ puts "Default URL Method: #{url_method}"
243
+ puts "Cached Bunches"
244
+ bunches.each {|b|
245
+ puts " - #{b[:title]}"
246
+ }
247
+ end
220
248
  end
221
249
  end
data/lib/bunch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BunchCLI
2
- VERSION = "1.1.3"
2
+ VERSION = "1.1.9.pre"
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.3
4
+ version: 1.1.9.pre
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-01 00:00:00.000000000 Z
11
+ date: 2021-04-14 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
@@ -49,11 +48,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
49
48
  version: 2.0.0
50
49
  required_rubygems_version: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - ">="
51
+ - - ">"
53
52
  - !ruby/object:Gem::Version
54
- version: '0'
53
+ version: 1.3.1
55
54
  requirements: []
56
- rubygems_version: 3.1.4
55
+ rubygems_version: 3.2.3
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.3)
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