getv 1.6.1 → 1.7.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 +4 -4
- data/README.md +8 -6
- data/exe/getv +28 -0
- data/lib/getv/package.rb +14 -2
- data/lib/getv/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d49b33dd0cac92da670d6e87cd932f4fbd60b6cb5d1db7f9ea2448a295f1f9b5
|
4
|
+
data.tar.gz: c8d460259782dbd03a353f79e7be1cee0d1e1f65124f06e04084931bcd880fad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef3b8cdbf5e974ff3c1663f3ec46eabc8b894aaea5e5f082ac5aa4c6d82d4c7e2ff3134cbc4e56f0da4fafe7eafb483eb0241d611b8d6b65370e50e8a66a86c8
|
7
|
+
data.tar.gz: b641600ab4ba600a5b337b06036c7779c9d89520cd11a5c4a38c1665073d082b7cd056120e417c8acf597ba2bb773798f8cd53c230635191208e89133f0d674d
|
data/README.md
CHANGED
@@ -39,15 +39,16 @@ SYNOPSIS
|
|
39
39
|
|
40
40
|
|
41
41
|
VERSION
|
42
|
-
1.
|
42
|
+
1.7.0
|
43
43
|
|
44
44
|
|
45
45
|
|
46
46
|
GLOBAL OPTIONS
|
47
|
-
--help
|
48
|
-
-j, --json
|
49
|
-
-l, --latest
|
50
|
-
--
|
47
|
+
--help - Show this message
|
48
|
+
-j, --json - Output in json
|
49
|
+
-l, --latest - Latest version
|
50
|
+
-p, --proxy=arg - Web proxy (default: none)
|
51
|
+
--version - Display the program version
|
51
52
|
|
52
53
|
|
53
54
|
|
@@ -58,6 +59,7 @@ COMMANDS
|
|
58
59
|
github_commit - Get package versions from GitHub commits
|
59
60
|
github_release - Get package versions from GitHub releases
|
60
61
|
github_tag - Get package versions from GitHub tags
|
62
|
+
helm - Get package versions from a Helm chart repository
|
61
63
|
help - Shows a list of commands or help for one command
|
62
64
|
index - Get package versions from web page of links
|
63
65
|
npm - Get package versions from npm at registry.npmjs.org
|
@@ -70,7 +72,7 @@ Show the latest available version of the `getv` gem:
|
|
70
72
|
|
71
73
|
```console
|
72
74
|
$ getv --latest gem getv
|
73
|
-
1.
|
75
|
+
1.7.0
|
74
76
|
```
|
75
77
|
|
76
78
|
Show all `dep` GitHub release versions in JSON:
|
data/exe/getv
CHANGED
@@ -196,6 +196,34 @@ class App # rubocop:disable Metrics/ClassLength
|
|
196
196
|
end
|
197
197
|
end
|
198
198
|
|
199
|
+
desc 'Get package versions from a Helm chart repository'
|
200
|
+
arg_name 'package_name'
|
201
|
+
command :helm do |c|
|
202
|
+
defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
|
203
|
+
c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
|
204
|
+
c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
|
205
|
+
c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
|
206
|
+
c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
|
207
|
+
c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
|
208
|
+
default_value: defaults[:semantic_select]
|
209
|
+
c.flag %i[chart], desc: 'Chart name', default_value: 'package_name'
|
210
|
+
c.flag %i[url], desc: 'URL', default_value: defaults[:url]
|
211
|
+
c.flag %i[user], desc: 'Username', default_value: defaults[:user]
|
212
|
+
c.flag %i[password], desc: 'Password', default_value: defaults[:password]
|
213
|
+
c.action do |global_options, options, args|
|
214
|
+
help_now! unless args.size == 1
|
215
|
+
|
216
|
+
opts = global_options.merge(options)
|
217
|
+
opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :chart, :url,
|
218
|
+
:user, :password, :proxy
|
219
|
+
opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
|
220
|
+
opts[:semantic_only] = !options[:invalid_versions]
|
221
|
+
opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
|
222
|
+
package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
|
223
|
+
Getv::Cli.output(package, latest: global_options[:latest], json: global_options[:json])
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
199
227
|
desc 'Get package versions from web page of links'
|
200
228
|
arg_name 'package_name'
|
201
229
|
command :index do |c|
|
data/lib/getv/package.rb
CHANGED
@@ -56,6 +56,8 @@ module Getv
|
|
56
56
|
else
|
57
57
|
{ owner: name, repo: name }.merge(opts)
|
58
58
|
end
|
59
|
+
when 'helm'
|
60
|
+
opts = { chart: name, url: nil, user: nil, password: nil }.merge(opts)
|
59
61
|
when 'index'
|
60
62
|
opts = { link: 'content' }.merge(opts)
|
61
63
|
when 'npm'
|
@@ -103,9 +105,14 @@ module Getv
|
|
103
105
|
|
104
106
|
private
|
105
107
|
|
106
|
-
def get(url)
|
108
|
+
def get(url) # rubocop:disable Metrics/AbcSize
|
107
109
|
require 'rest-client'
|
108
|
-
|
110
|
+
if opts[:user] && opts[:password]
|
111
|
+
RestClient::Request.execute(method: :get, url: url, proxy: opts[:proxy], user: opts[:user],
|
112
|
+
password: opts[:password]).body
|
113
|
+
else
|
114
|
+
RestClient::Request.execute(method: :get, url: url, proxy: opts[:proxy]).body
|
115
|
+
end
|
109
116
|
end
|
110
117
|
|
111
118
|
def versions_using_docker # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
|
@@ -160,6 +167,11 @@ module Getv
|
|
160
167
|
end
|
161
168
|
end
|
162
169
|
|
170
|
+
def versions_using_helm
|
171
|
+
require 'yaml'
|
172
|
+
YAML.safe_load(get("#{opts[:url]}/index.yaml")).fetch('entries', {}).fetch(name, []).map { |e| e['version'] }
|
173
|
+
end
|
174
|
+
|
163
175
|
def versions_using_index
|
164
176
|
require 'nokogiri'
|
165
177
|
Nokogiri::HTML(get(opts[:url])).css('a').map do |a|
|
data/lib/getv/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: getv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- harbottle
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|