ghcurl 0.5.1 → 0.7.1

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +59 -11
  3. data/bin/ghcurl +247 -96
  4. data/lib/ghcurl.rb +6 -3
  5. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b51925892c13aec5ed7e86f931e8319f9b4ddb06c0c14d6c08816776b3e5b922
4
- data.tar.gz: 01ce411ded642b6f0cac664e3a966ad2053f7b0a7f3a5d536a28e27f0531a43a
3
+ metadata.gz: fec37deabe100d853deadbbf290658a5336a3ea0570948a0247a0f9fe6ece0c5
4
+ data.tar.gz: 48eddecd5fa148528eee00072e1270ec7a5af4d4bea22a942d84f2e27f1da3ef
5
5
  SHA512:
6
- metadata.gz: 4194359adb2d54b6fca4069e7d8f67ff205bd2b350ce70648aca80281e7d6a392eb7e46c50257a330341f18be67cf1ccc2a50bcf40becb104b60beb0ffb0367c
7
- data.tar.gz: 8e04c84f09936c07f8c975443933a757452677c58e7613339747f6983a3297cff21642d4633a0e47fe39251648554f47227135eda3dd557acd575faffe465a5b
6
+ metadata.gz: a7d4839bcc4066350d2a8a4fb35364a6d297fc413193bd68e6366f196d60ecccedd4f1a5b8fa2ee17b4e6e653ecb75a94910f4008dbb235f96a8f4e60d890613
7
+ data.tar.gz: c0b96d5a08f55fab2d326dcc69b4703b7852c44eb61f5ce9dc30c2cba5eea357e47790e3830ec775ea11f7a38ec64faaf962aff88d092d144d7e60b8acaeda07
data/README.md CHANGED
@@ -4,34 +4,79 @@
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/ghcurl.svg)](https://rubygems.org/gems/ghcurl)
6
6
 
7
+
8
+ Download files and install from Github releases.
9
+
7
10
  ```bash
8
11
  gem install ghcurl
9
12
  ```
10
13
 
11
- <br>
14
+ </div>
12
15
 
13
- Download files and install from Github releases.
16
+ `ghcurl` can recognize your OS and arch, give you the proper option to download. You can search by regular expression, specify a version, and install it to a path or according to the environment variable `GHCURL_BIN_PATH` or just `/usr/local/bin`. It will automatically extract a tar/zip file to make the installation process better.
14
17
 
15
- </div>
18
+ Note it doesn't work on Windows.
19
+
20
+ <br>
16
21
 
17
22
  ## Usage
18
23
 
19
- Download latest deb/rpm package and install, notice the argument `deb` / `rpm` are just regular expressions.
20
24
  ```bash
21
- ghcurl cli/cli deb -i
22
- ghcurl cli/cli rpm -i
25
+ $ ghcurl [user/]repo [regexp] [options]
23
26
  ```
24
27
 
25
- Things can be easier.
28
+ **-o**
29
+
30
+ This is optional, download will default to `~/.cache/ghcurl`
31
+ 1. `-o path` Download into path
32
+ 2. `-o path/name` Download as path/name
33
+
34
+ **-v**
35
+ 1. `-v 1.0.0` Download tag version 1.0.0
36
+ 2. `-v3.1.4` This is also OK to download tag version 3.1.4
37
+
38
+ **-i**
39
+ 1. `-i` Install to `/usr/local/bin` or `GHCURL_BIN_PATH`
40
+ 2. `-i path` Install to path
41
+
42
+ **-r**
43
+ 1. `-r name` Install the binary as name
44
+
45
+ <br>
46
+
47
+ ## Example
48
+
49
+ Things can be easier. We consider these as popular binaries: https://github.com/ibraheemdev/modern-unix
50
+
51
+ Notice: `-i` means to install.
52
+
26
53
  ```bash
27
54
  # It knows that's sharkdp/fd
28
55
  ghcurl fd -i
56
+
57
+ # It's cli/cli !
58
+ ghcurl gh -i
59
+
60
+ # Much easier to install rbspy!
61
+ ghcurl rbspy -i
62
+ ```
63
+
64
+ Download latest deb/rpm package and install, notice the argument `deb` / `rpm` are just regular expressions.
65
+ ```bash
66
+ ghcurl cli/cli deb -i
67
+ ghcurl cli/cli rpm -i
29
68
  ```
30
69
 
31
70
  Normal download
32
71
  ```bash
72
+ # The easiest way to download
73
+ ghcurl gh
74
+
75
+ # Download to /tmp
76
+ ghcurl gh -o /tmp
77
+
33
78
  # Download latest rbspy-x86_64-unknown-linux-gnu.tar.gz to ~/.cache/ghcurl
34
- ghcurl rbspy/rbspy x86_64.*linux
79
+ ghcurl rbspy/rbspy 'x86_64.*linux'
35
80
 
36
81
  # Download rbspy version 0.11.1
37
82
  ghcurl rbspy/rbspy 'x86_64.*linux' -v0.11.1
@@ -40,13 +85,16 @@ ghcurl rbspy/rbspy 'x86_64.*linux' -v0.11.1
40
85
  Download a binary and install it to anywhere
41
86
  ```bash
42
87
  # Install to /usr/local/bin
43
- ghcurl BetaPictoris/timeleft timeleft -i
88
+ ghcurl starship linux-gnu -i
44
89
 
45
90
  # Install to ~/tmp/bin
46
- ghcurl BetaPictoris/timeleft timeleft -i ~/tmp/bin
91
+ ghcurl BetaPictoris/timeleft -i ~/tmp/bin
92
+
93
+ # Download as /tmp/github-cli and install
94
+ ghcurl gh -o /tmp/github-cli -i
47
95
 
48
96
  # Install and rename it to, here, 'gd' in /usr/local/bin
49
- ghcurl dlvhdr/gh-dash linux-amd64 -i gd
97
+ ghcurl dlvhdr/gh-dash linux-amd64 -i -r 'gd'
50
98
 
51
99
  # or, like this
52
100
  ghcurl dlvhdr/gh-dash linux-amd64 -i ~/tmp/bin/gd
data/bin/ghcurl CHANGED
@@ -3,24 +3,23 @@
3
3
  # File : ghcurl.rb
4
4
  # Authors : ccmywish <ccmywish@qq.com>
5
5
  # Created on : <2022-04-12>
6
- # Last modified : <2022-04-14>
6
+ # Last modified : <2022-04-26>
7
7
  #
8
8
  # ghcurl:
9
9
  #
10
- # Download files (and install) from Github releases
10
+ # Download files and install from Github releases
11
11
  #
12
12
  # ------------------------------------------------------
13
13
 
14
14
  require 'ghcurl'
15
- require 'nokogiri'
16
- require 'open-uri'
17
15
  require 'highline'
18
16
  require 'cliswitch'
17
+ require 'fileutils'
19
18
 
20
19
  module Ghcurl
21
20
 
22
21
  WAREHOUSE = File.expand_path("~/.cache/ghcurl")
23
- BIN_PATH = ENV['GHCURL_BIN_PATH'] || "/usr/local/bin"
22
+ BIN_PATH = ENV['GHCURL_BIN_PATH'].chomp('/') || "/usr/local/bin"
24
23
  HL = HighLine.new
25
24
 
26
25
  class Error < StandardError; end
@@ -36,14 +35,25 @@ module Ghcurl
36
35
  end
37
36
 
38
37
 
39
- def curl(url, name)
40
- #if !test('d', WAREHOUSE)
41
- # require 'fileutils'
42
- # FileUtils.mkdir_p(WAREHOUSE)
43
- #end
44
- cmd = "curl -L #{url} --create-dirs -o #{WAREHOUSE}/#{name}"
38
+ #
39
+ # @return absolute download path
40
+ #
41
+ def curl(url, name, to)
42
+ if to == nil
43
+ to = WAREHOUSE + '/' + name
44
+ elsif test 'd', to
45
+ to = to.chomp('/') + '/' + name
46
+ elsif to.include?('/')
47
+ # noop
48
+ else
49
+ # just a rename in WAREHOUSE
50
+ to = WAREHOUSE + '/' + name
51
+ end
52
+
53
+ cmd = "curl -L #{url} --create-dirs -o #{to}"
45
54
  system cmd
46
- log "Downloaded to #{WAREHOUSE}/#{name}"
55
+ log "Downloaded to #{to}"
56
+ return to
47
57
  end
48
58
 
49
59
 
@@ -58,7 +68,8 @@ module Ghcurl
58
68
 
59
69
  oses = [
60
70
  ['linux'],
61
- ['mac', 'apple'],
71
+ ['freebsd'],
72
+ ['mac', 'apple', 'darwin'],
62
73
  ['windows']
63
74
  ]
64
75
 
@@ -115,8 +126,11 @@ module Ghcurl
115
126
  end
116
127
 
117
128
 
118
- def download(repo, regexp, version: nil)
129
+ def download(repo, regexp, version: nil, download_to: nil)
119
130
 
131
+ require 'octokit'
132
+
133
+ # adjust repo name : user/repo
120
134
  if repo =~ /^https:\/\/github.com/
121
135
  require 'uri'
122
136
  uri = URI(repo)
@@ -134,27 +148,32 @@ module Ghcurl
134
148
  end
135
149
 
136
150
  log "checking..."
137
- unless version
138
- doc = Nokogiri::HTML5 URI.open("https://github.com/#{repo}/releases/latest")
139
- else
140
- doc = Nokogiri::HTML5 URI.open("https://github.com/#{repo}/releases/tag/v#{version}")
151
+ begin
152
+ unless version
153
+ doc = Octokit::Client.new.latest_release(repo)
154
+ else
155
+ doc = Octokit::Client.new.release_for_tag(repo, 'v' + version)
156
+ end
157
+ rescue Octokit::NotFound
158
+ puts "ghcurl: Not found #{repo} v#{version} !"
159
+ rescue Error => e
160
+ puts e
161
+ exit 0
141
162
  end
142
163
 
143
-
144
- links = doc.css("li>a[href^='/#{repo}/releases/download']")
164
+ links = doc.to_hash[:assets]
145
165
  if links.empty?
146
- puts doc.css('li a').map(&:to_s)
147
166
  log <<~EOE
148
- The search result is empty, check the args:
167
+ The search result is empty, check the args!
149
168
  repo: #{repo}
150
169
  version: #{version ? version:'nil'}
151
-
170
+
171
+ Maybe there's no assets in this release
152
172
  EOE
153
- puts
173
+ exit 0
154
174
  end
155
175
 
156
-
157
- links = links.map { _1['href'] }
176
+ links = links.map { _1[:browser_download_url] }
158
177
 
159
178
 
160
179
  if regexp
@@ -186,97 +205,221 @@ module Ghcurl
186
205
  end
187
206
  end
188
207
 
189
- url = "https://github.com" + links[0].split('/')[0..-2].join('/') + '/' + link
208
+ url = links[0].split('/')[0..-2].join('/') + '/' + link
190
209
 
191
210
  log "Downloading #{url}"
192
211
 
193
- $downloaded = link.split('/').last
194
-
195
- curl(url, $downloaded)
212
+ dl_name = link.split('/').last
196
213
 
214
+ return curl(url, dl_name, download_to)
197
215
  end
198
216
 
199
217
 
200
- def install(ware, place: BIN_PATH)
218
+ #
219
+ # This function is a little confusing
220
+ #
221
+ # target: The absolute path to a downloaded file
222
+ # name : The software name
223
+ #
224
+ def install(target, rename_as: nil, install_to: nil)
201
225
 
202
- ware_name = ''
203
- if ware.include?('/')
204
- ware_name = ware.split('/').last
205
- else
206
- ware_name = ware
226
+ if target.end_with?('.deb')
227
+ log "Install the deb package"
228
+ system "sudo dpkg -i #{target}"
229
+ return
230
+ end
231
+
232
+ if target.end_with?('.rpm')
233
+ log "Install the rpm package"
234
+ system "sudo rpm -i #{target}"
235
+ return
236
+ end
237
+
238
+
239
+ if install_to.nil?
240
+ install_to = BIN_PATH
241
+ end
242
+
243
+
244
+ #
245
+ # Handle zip situation
246
+ #
247
+ zip_flag = false
248
+
249
+ if target.match?(/\.zip$/) or target.match?(/\.tar\.(\w){1,3}/)
250
+
251
+ zip_flag = true
252
+
253
+ # unzipped to dir
254
+ unzip_dir = ""
255
+ # unzipped files
256
+ files = ""
257
+ # the target unzipped file name (this includes the path prefix)
258
+ unzip_name = ""
259
+
260
+ # unzip
261
+ if target.match? /\.zip$/
262
+ log "Unzip zip file"
263
+ unzip_dir = target.chomp('.zip')
264
+ system "unzip -q #{target} -d #{unzip_dir}"
207
265
  end
208
266
 
209
- if (! $downloaded.include?(ware_name)) and (!$downloaded.end_with?('.deb')) and (!$downloaded.end_with?('.rpm'))
210
- log "Do you want to rename or install it to a different path?"
211
- re = HL.ask "Input path or name, or just enter to say no."
212
- if !re.empty?
213
- place = re
267
+ # .gz, .bz2, .xz
268
+ if target.match? /\.tar\.(\w){1,3}/
269
+ log "Unzip tar file"
270
+ unzip_dir = target.split('.')[0..-3].join('.')
271
+ FileUtils.mkdir_p(unzip_dir)
272
+ system "tar xf #{target} --directory=#{unzip_dir}"
273
+ end
274
+
275
+
276
+ #
277
+ # @return [Array] file names in the dir
278
+ #
279
+ def _iterate_dir(dir)
280
+ result = []
281
+ chd = Dir.children(dir)
282
+ chd_files = chd.select{|f| File.file? "#{dir}/#{f}"}
283
+
284
+ chd_files.each { result << "#{dir}/#{_1}"[2..] }
285
+
286
+ chd_dirs = chd.select{|d| File.directory?("#{dir}/#{d}") && ( d != '.git')}
287
+ chd_dirs.each do |d|
288
+ sub_dir = "#{dir}/#{d}"
289
+ result.concat _iterate_dir(sub_dir)
214
290
  end
291
+ result
215
292
  end
216
293
 
217
- case RUBY_PLATFORM
218
- when /ucrt/i, /mingw/i
219
- install_on_windows($downloaded, place)
294
+
295
+ Dir.chdir unzip_dir do
296
+ files = _iterate_dir('.')
297
+ end
298
+
299
+
300
+ if files.size > 1
301
+ unzip_name = HL.choose do |menu|
302
+ menu.index_color = :rgb_77bbff
303
+ menu.prompt = "Which one do you want to install? "
304
+ menu.choices( *files )
305
+ end
220
306
  else
221
- install_on_nix($downloaded, place)
307
+ unzip_name = files[0]
222
308
  end
223
- log "Install finish!"
224
- end
225
309
 
310
+ end # end of zipped file handle
226
311
 
227
- def install_on_nix(ware, place)
228
312
 
229
- target = "#{WAREHOUSE}/#{ware}"
313
+ # Get software real name
314
+ if zip_flag
315
+ name = unzip_name.split('/').last
316
+ else
317
+ name = target.split('/').last
318
+ end
230
319
 
231
- if target.end_with?('.deb')
232
- log "Install deb package for you"
233
- system "sudo dpkg -i #{target}"
234
- return
320
+
321
+ if (name.size > 10 ||
322
+ name.include?('.') ||
323
+ name.include?('-') ||
324
+ name.include?('_')) && (not rename_as)
325
+ log "Do you want to rename the '#{name}'?"
326
+ re = HL.ask "Input name, or just leave it blank to say no."
327
+ if !re.empty?
328
+ rename_as = re
329
+ end
235
330
  end
236
331
 
237
- if target.end_with?('.rpm')
238
- log "Install rpm package for you"
239
- system "sudo rpm -i #{target}"
240
- return
332
+
333
+ if zip_flag
334
+ # Now:
335
+ # target is /home/xx/xx.zip
336
+ # unzip_dir is /home/xx/xx
337
+ # unzip_file is abc/cde/file (new target)
338
+ target = unzip_dir + '/' + unzip_name
241
339
  end
242
340
 
341
+ log "Renamed as '#{rename_as}'" if rename_as
243
342
 
244
- if test 'd', place
245
- cmd = "sudo install -Dt #{place} -m 755 #{target} "
246
- system cmd
247
- log "Install #{ware} to " + place
248
343
 
344
+ case RUBY_PLATFORM
345
+ when /ucrt/i, /mingw/i
346
+ install_on_windows(target, name, install_to, rename_as)
249
347
  else
250
- unless place.include?('/')
251
- # User just give it another name
252
- place = BIN_PATH + '/' + place
348
+ install_on_nix(target, name, install_to, rename_as)
349
+ end
350
+ end
351
+
352
+
353
+ #
354
+ # @param target [String] the absulute path of to be installed software
355
+ # @param name [String] the name of the software
356
+ #
357
+ def install_on_nix(target, name, install_to, rename_as)
358
+ install_to = install_to.chomp('/')
359
+
360
+ if test 'd', install_to
361
+ log "Ready to install #{name}"
362
+ if rename_as
363
+ dest = "#{install_to}/#{rename_as}"
364
+ system "sudo cp #{target} " + dest
365
+ system "sudo chmod +x " + dest
366
+ log "Installed as " + dest
253
367
  else
254
- # User give it a path and its name
368
+ cmd = "sudo install -Dt #{install_to} -m 755 #{target} "
369
+ system cmd
370
+ log "Install #{name} to " + install_to
255
371
  end
256
- log "Installed as " + place
257
- system "sudo cp #{target} #{place}"
258
- system "sudo chmod +x #{place}"
372
+ log "Install finish!"
373
+ else
374
+ log "#{install_to} is not a directory!"
259
375
  end
260
376
 
261
377
  end
262
378
 
263
379
 
264
- def install_on_windows
265
- log "Sorry, not implemented yet!"
380
+ def install_on_windows(target, name, install_to, rename_as)
381
+ log "Sorry, not implemented yet on Windows! Can you help?"
266
382
  end
267
383
 
268
384
 
385
+ #
386
+ # For -l option
387
+ #
269
388
  def list_wares
270
-
271
- puts blue("In #{WAREHOUSE}")
272
- puts
389
+ FileUtils.mkdir_p(WAREHOUSE)
390
+ puts blue("ghcurl: #{WAREHOUSE}")
273
391
  Dir.children(WAREHOUSE).each_with_index do |dict,i|
274
- puts " #{blue(i+1)}. #{bold(green(dict))}"
392
+ puts "#{blue(i+1)}. #{bold(green(dict))}"
275
393
  end
276
- puts
277
394
  end
278
395
 
279
396
 
397
+ #
398
+ # For -d option
399
+ #
400
+ def delete_wares(name)
401
+ begin
402
+
403
+ if name.nil?
404
+ re = HL.ask "Do you want to delete all downloaded files?[Enter to yes or n]"
405
+ case re.downcase
406
+ when '','y','ye','yes','true'
407
+ FileUtils.rm_rf WAREHOUSE
408
+ log "Delete all done"
409
+ end
410
+ else
411
+ FileUtils.rm WAREHOUSE + '/' + name
412
+ log "Delete #{name} done"
413
+ end
414
+
415
+ rescue Exception => e
416
+ puts bold(red("ghcurl: #{e}"))
417
+ list_wares
418
+ end
419
+
420
+ end # end def delete_wares
421
+
422
+
280
423
  def help
281
424
  puts <<~EOC
282
425
  ghcurl (v#{VERSION}): Download files and install from Github releases
@@ -284,18 +427,21 @@ module Ghcurl
284
427
  Default install to env 'GHCURL_BIN_PATH' or /usr/local/bin
285
428
 
286
429
  usage:
287
- ghcurl [user]/repo [regexp] => Search latest version with regexp to download
288
- ghcurl repo [re] -v tag => Download a specific tag version
289
- ghcurl repo [deb/rpm] => Download and install deb/rpm package
290
- ghcurl repo [re] -i [path] => Download and install to path
291
- ghcurl repo [re] -i name => Download and install as 'name'
292
- ghcurl -l => List downloaded files
293
- ghcurl -h => Print this help
430
+ ghcurl [user]/repo [regexp] => Search latest version with regexp to download
431
+ ghcurl repo [re] -v tag => Download a specific tag version
432
+ ghcurl repo [re] -o [path] => Download into path or rename
433
+ ghcurl repo [re] -i [path] => Download and install to path
434
+ ghcurl repo [re] -o [path] -i => Download into path and install
435
+ ghcurl repo [re] -i -r name => Download and install as 'name'
436
+ ghcurl -l => List downloaded files
437
+ ghcurl -d [name] => Delete a downloaded file or all
438
+ ghcurl -h => Print this help
294
439
 
295
440
  example:
296
441
  ghcurl bat => Search sharkdp/bat the latest
297
442
  ghcurl cli deb -i => Search cli/cli /deb/
298
443
  ghcurl rbspy/rbspy 'x86_64.*linux' -v0.11.1
444
+ ghcurl dlvhdr/gh-dash linux-amd64 -i -r 'gd'
299
445
 
300
446
  EOC
301
447
  end
@@ -311,9 +457,12 @@ extend Ghcurl
311
457
 
312
458
  class Ghcurl::CLI < CliSwitch
313
459
  option name: 'install', short: '-i', arg_required: 'optional'
460
+ option name: 'output', short: '-o', long: '--output', arg_required: 'required'
461
+ option name: 'rename', short: '-r', arg_required: 'required'
314
462
  option name: 'version', short: '-v', arg_required: 'required'
315
- option name: 'help', short: '-h', long: '--help', arg_required: 'noarg'
316
- option name: 'list', short: '-l', arg_required: 'noarg'
463
+ option name: 'help', short: '-h', long: '--help', arg_required: 'noarg'
464
+ option name: 'list', short: '-l', arg_required: 'noarg'
465
+ option name: 'delete', short: '-d', arg_required: 'optional'
317
466
  end
318
467
 
319
468
  args, opts = Ghcurl::CLI.new.parse(ARGV)
@@ -323,16 +472,13 @@ if args.empty? and opts.empty?
323
472
  exit
324
473
  end
325
474
 
326
- if args.size >= 2
327
- repo_or_name, regexp = args[0], args[1]
328
- else
329
- repo_or_name, regexp = args[0], nil
330
- end
331
-
332
475
 
476
+ repo_or_name, regexp = args[0], args[1]
333
477
  version = nil
334
478
  need_install = false
479
+ download_to = nil
335
480
  install_to = nil
481
+ rename_as = nil
336
482
 
337
483
  opts.each do
338
484
  case _1.name
@@ -342,11 +488,18 @@ opts.each do
342
488
  when 'list'
343
489
  list_wares
344
490
  exit
491
+ when 'delete'
492
+ delete_wares(_1.next_arg)
493
+ exit
345
494
  when 'version'
346
495
  version = _1.next_arg
496
+ when 'output'
497
+ download_to = _1.next_arg
347
498
  when 'install'
348
499
  need_install = true
349
500
  install_to = _1.next_arg
501
+ when 'rename'
502
+ rename_as = _1.next_arg
350
503
  end
351
504
  end
352
505
 
@@ -354,16 +507,14 @@ end
354
507
  # p repo_or_name
355
508
  # p regexp
356
509
  # p need_install
510
+ # p download_to
357
511
  # p install_to
512
+ # p rename_as
358
513
 
359
514
  begin
360
- download(repo_or_name, regexp, version: version)
515
+ ware = download(repo_or_name, regexp, version: version, download_to: download_to)
361
516
  if need_install
362
- if install_to
363
- install(repo_or_name, place: install_to)
364
- else
365
- install(repo_or_name)
366
- end
517
+ install(ware, rename_as: rename_as, install_to: install_to)
367
518
  end
368
519
  rescue Interrupt
369
520
  end
data/lib/ghcurl.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # File : ghcurl.rb
3
3
  # Authors : ccmywish <ccmywish@qq.com>
4
4
  # Created on : <2022-04-12>
5
- # Last modified : <2022-04-14>
5
+ # Last modified : <2022-04-26>
6
6
  #
7
7
  # ghcurl:
8
8
  #
@@ -12,7 +12,7 @@
12
12
 
13
13
  module Ghcurl
14
14
 
15
- VERSION = "0.5.1"
15
+ VERSION = "0.7.1"
16
16
 
17
17
  end
18
18
 
@@ -24,6 +24,7 @@ end
24
24
  Ghcurl::DEFAULT_WARES = {
25
25
 
26
26
  cli: 'cli/cli',
27
+ gh: 'cli/cli',
27
28
 
28
29
  fd: 'sharkdp/fd',
29
30
  bat: 'sharkdp/bat',
@@ -61,5 +62,7 @@ Ghcurl::DEFAULT_WARES = {
61
62
  xh: 'ducaale/xh',
62
63
  zoxide: 'ajeetdsouza/zoxide',
63
64
 
64
- scc: 'boyter/scc'
65
+ scc: 'boyter/scc',
66
+ rbspy: 'rbspy/rbspy',
67
+ starship: 'starship/starship'
65
68
  }
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghcurl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ccmywish
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-14 00:00:00.000000000 Z
11
+ date: 2022-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: nokogiri
14
+ name: octokit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.13'
19
+ version: '4.22'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.13'
26
+ version: '4.22'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: highline
29
29
  requirement: !ruby/object:Gem::Requirement