booker 0.5.1 → 0.6.0

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
  SHA1:
3
- metadata.gz: 9bab5ef84a7945f91e33f44a6da33ef1089c77b9
4
- data.tar.gz: 705e3cdf9f3ad3c9ed8de0414ed006d187d21195
3
+ metadata.gz: 77132e0717914716bdbb9faef9f055fab5356da8
4
+ data.tar.gz: fc1e922a5f2e5145f1a27d46183e5c5ce04ec81e
5
5
  SHA512:
6
- metadata.gz: b9ed16c402971158fb3f54b7becbee48f99432738bf33879bf2bffcd956836a4356a3941b03dc6c95c0c00355a8ba4180e0c21f258649f2dbf874aad7347d68f
7
- data.tar.gz: c1a6a49b54d3638b78391ebef6a05271c962e9406a4d26ed39490ef51aa44b26f00f0619d4f535028385032ee206f15ee70bc51769e0ba33ef0545d552e536bb
6
+ metadata.gz: 2535513f6eb7860b4eb8d64b6a7df73afde2fb54b4f51073cb2d3dfb2a35c7008bc264b05882118669525a469e56a3100463e6e5311969db842a731487cd56ba
7
+ data.tar.gz: 026fd73d94df38ac6a8bfa405c452f40afa167c281ab8d2a1a13031082ac8dd735b1ffa6d388ab917a9cb6e6cee7f454ff5de62715fbeeebb185a2ae35dcfeb9
data/bin/booker CHANGED
@@ -1,12 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
-
4
3
  require_relative "../lib/booker"
5
4
 
6
-
7
- # web by jeremy warner
5
+ # booker by jeremy warner
8
6
  # open up a website or search in google chrome from cli
9
7
  # also show and/or open up google chrome bookmarks
10
8
 
11
-
12
9
  Booker.new(ARGV)
@@ -1,9 +1,4 @@
1
1
  # parse booker's command line args
2
-
3
-
4
- VERSION = "0.5.1"
5
-
6
-
7
2
  require 'yaml'
8
3
  require 'find'
9
4
  require 'json'
@@ -14,8 +9,13 @@ require_relative 'config'
14
9
  require_relative 'consts'
15
10
 
16
11
 
17
- # get web opening command
12
+ # get booker opening command
18
13
  class Booker
14
+ @version = "0.6.0"
15
+ class << self
16
+ attr_reader :version
17
+ end
18
+
19
19
  include Browser
20
20
  def initialize(args)
21
21
  parse args
@@ -34,11 +34,10 @@ class Booker
34
34
  if browsearg.match(/^[0-9]/) # bookmark
35
35
  open_bookmark args
36
36
  elsif domain.match(browsearg) # website
37
- puts 'opening website ' + browsearg + '...'
38
- openweb(wrap(prep(browsearg)))
37
+ puts 'opening website: ' + browsearg
38
+ openweb(prep(browsearg))
39
39
  else
40
- allargs = wrap(args.join(' '))
41
- open_search allargs
40
+ open_search(args.join(' '))
42
41
  end
43
42
  end
44
43
 
@@ -52,7 +51,7 @@ class Booker
52
51
  end
53
52
 
54
53
  def version
55
- pexit VERSION, 0
54
+ pexit @version, 0
56
55
  end
57
56
 
58
57
  def openweb(url)
@@ -72,7 +71,7 @@ class Booker
72
71
  def open_search(term)
73
72
  puts 'searching ' + term + '...'
74
73
  search = BConfig.new.searcher
75
- openweb(Shellwords.escape(search + term))
74
+ openweb(search + Shellwords.escape(term))
76
75
  end
77
76
 
78
77
  # parse and execute any command line options
@@ -84,7 +83,7 @@ class Booker
84
83
  errormsg = 'Error: '.red + "unrecognized option #{nextarg}"
85
84
  pexit errormsg, 1 if ! (valid_opts.include? nextarg)
86
85
 
87
- # doing forced bookmarking
86
+ # forced bookmarking
88
87
  if nextarg == '--bookmark' || nextarg == '-b'
89
88
  if args.first.nil?
90
89
  pexit 'Error: '.red + 'booker --bookmark expects bookmark id', 1
@@ -93,14 +92,14 @@ class Booker
93
92
  end
94
93
  end
95
94
 
96
- # doing autocompletion
95
+ # autocompletion
97
96
  if nextarg == '--complete' || nextarg == '-c'
98
97
  allargs = args.join(' ')
99
98
  bm = Bookmarks.new(allargs)
100
99
  bm.autocomplete
101
100
  end
102
101
 
103
- # doing installation
102
+ # installation
104
103
  if nextarg == '--install' || nextarg == '-i'
105
104
  if !args.empty?
106
105
  install(args)
@@ -110,7 +109,7 @@ class Booker
110
109
  end
111
110
  end
112
111
 
113
- # doing forced searching
112
+ # forced searching
114
113
  if nextarg == '--search' || nextarg == '-s'
115
114
  pexit '--search requires an argument', 1 if args.empty?
116
115
  allargs = args.join(' ')
@@ -148,8 +147,7 @@ class Booker
148
147
  begin
149
148
  fpath = `zsh -c 'echo $fpath'`.split(' ')
150
149
  rescue
151
- pexit "Failure: ".red +
152
- "zsh is probably not installed, could not find $fpath", 1
150
+ pexit "Failure: ".red + "zsh is probably not installed, could not find $fpath", 1
153
151
  end
154
152
 
155
153
  # determine where to install completion function
@@ -157,51 +155,54 @@ class Booker
157
155
  begin
158
156
  File.open(fp + "/_booker", 'w') {|f| f.write(COMPLETION) }
159
157
  system "zsh -c 'autoload -U _booker'"
160
- puts "Success: ".grn +
161
- "installed zsh autocompletion in #{fp}"
158
+ puts "Success: ".grn + "installed zsh autocompletion in #{fp}"
162
159
  break # if this works, don't try anymore
163
160
  rescue
164
- puts "Failure: ".red +
165
- "could not write ZSH completion _booker script to $fpath (#{fp})"
161
+ puts "Failure: ".red + "could not write ZSH completion _booker script to $fpath (#{fp})"
166
162
  end
167
163
  end
168
164
  end
169
165
 
170
166
  def install_bookmarks
171
167
  # locate bookmarks file, show user, write to config?
172
- puts 'searching for chrome bookmarks... (takes some time)'
168
+ puts 'searching for chrome bookmarks...'
173
169
  begin
174
170
  bms = [] # look for bookmarks
175
- Find.find(ENV["HOME"]) do |path|
176
- bms << path if /chrom.*bookmarks/i.match path
171
+ [ '/Library/Application Support/Google/Chrome',
172
+ '/AppData/Local/Google/Chrome/User Data/Default',
173
+ '/.config/chromium/Default/',
174
+ '/.config/google-chrome/Default/',
175
+ ].each do |f|
176
+ home = File.join(ENV['HOME'], f)
177
+ next if !FileTest.directory?(home)
178
+ Find.find(home) do |file|
179
+ bms << file if /chrom.*bookmarks/i.match file
180
+ end
177
181
  end
178
182
 
179
183
  if bms.empty? # no bookmarks found
180
184
  puts "Failure: ".red + 'bookmarks file could not be found.'
181
185
  raise
182
186
  else # have user select a file
183
- puts 'select your bookmarks file: '
184
- bms.each_with_index{|bm, i| puts i.to_s.grn + " - " + bm }
187
+ puts 'select bookmarks file: '
188
+ bms.each_with_index {|bm, i| puts i.to_s.grn + " - " + bm }
185
189
  selected = bms[gets.chomp.to_i]
186
190
  puts 'Selected: '.yel + selected
187
191
  BConfig.new.write('bookmarks', selected)
188
- puts "Success: ".grn +
189
- "config file updated with your bookmarks"
192
+ puts "Success: ".grn + "config file updated with your bookmarks"
190
193
  end
191
- rescue # catch all errors
192
- pexit "Failure: ".red +
193
- "could not add bookmarks to config file ~/.booker", 1
194
+ rescue StandardError => e
195
+ puts e.message
196
+ pexit "Failure: ".red + "could not add bookmarks to config file ~/.booker", 1
194
197
  end
195
198
  end
196
199
 
197
200
  def install_config
198
201
  begin
199
202
  BConfig.new.write
200
- puts "Success: ".grn +
201
- "example config file written to ~/.booker"
203
+ puts "Success: ".grn + "example config file written to ~/.booker"
202
204
  rescue
203
- pexit "Failure: ".red +
204
- "could not write example config file to ~/.booker", 1
205
+ pexit "Failure: ".red + "could not write example config file to ~/.booker", 1
205
206
  end
206
207
  end
207
208
  end
@@ -1,6 +1,5 @@
1
1
  # grab/parse bookmarks from json file on computer
2
2
 
3
-
4
3
  # get int number of columns in half of screen
5
4
  TERMWIDTH = (TermInfo.screen_size[1]/2).floor
6
5
 
@@ -18,7 +17,7 @@ class String
18
17
  end
19
18
  end
20
19
 
21
- # thx danhassin
20
+ # thx danhassin/dingbat
22
21
  def colorize(color, mod)
23
22
  "\033[#{mod};#{color};49m#{self}\033[0;0m"
24
23
  end
@@ -25,7 +25,7 @@ module Browser
25
25
  # alternatively, start seems to work - probably check if powershell v cygwin?
26
26
  '/cygdrive/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe '
27
27
  elsif OS.mac?
28
- 'open -a "Google Chrome" '
28
+ 'open '
29
29
  elsif OS.linux?
30
30
  'xdg-open ' # completely guessing here
31
31
  end
@@ -45,8 +45,7 @@ module Browser
45
45
  end
46
46
 
47
47
  def wrap(url)
48
- #"'" + url + "'"
49
- url
48
+ "\"#{url}\""
50
49
  end
51
50
  end
52
51
 
@@ -85,7 +84,7 @@ class BConfig
85
84
  rescue Errno::ENOENT
86
85
  puts "Warning: ".yel +
87
86
  "YAML configuration file couldn't be found. Using defaults."
88
- puts "Suggest: ".grn + "web --install config"
87
+ puts "Suggest: ".grn + "booker --install config"
89
88
  return false
90
89
  rescue Psych::SyntaxError
91
90
  puts "Warning: ".red +
@@ -1,5 +1,6 @@
1
1
  # file for large constant strings
2
2
 
3
+ # todo - wrap in module
3
4
 
4
5
  HELP_BANNER = <<-EOS
5
6
  Open browser:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: booker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Warner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-18 00:00:00.000000000 Z
11
+ date: 2018-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-terminfo
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.8'
39
+ version: '2.1'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.8.1
42
+ version: 2.1.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '1.8'
49
+ version: '2.1'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.8.1
52
+ version: 2.1.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rspec
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -111,9 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project:
114
- rubygems_version: 2.5.1
114
+ rubygems_version: 2.6.14
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: CLI parser/selector for google chrome bookmarks
118
118
  test_files: []
119
- has_rdoc: