aspera-cli 4.25.6 → 4.26.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +89 -48
- data/CONTRIBUTING.md +1 -1
- data/lib/aspera/api/aoc.rb +120 -79
- data/lib/aspera/api/node.rb +103 -51
- data/lib/aspera/ascp/installation.rb +99 -32
- data/lib/aspera/assert.rb +17 -13
- data/lib/aspera/cli/extended_value.rb +7 -2
- data/lib/aspera/cli/formatter.rb +107 -95
- data/lib/aspera/cli/main.rb +69 -10
- data/lib/aspera/cli/manager.rb +158 -78
- data/lib/aspera/cli/options.schema.yaml +82 -0
- data/lib/aspera/cli/plugins/aoc.rb +247 -144
- data/lib/aspera/cli/plugins/ats.rb +3 -3
- data/lib/aspera/cli/plugins/base.rb +60 -76
- data/lib/aspera/cli/plugins/config.rb +14 -12
- data/lib/aspera/cli/plugins/console.rb +3 -3
- data/lib/aspera/cli/plugins/faspex.rb +6 -6
- data/lib/aspera/cli/plugins/faspex5.rb +24 -23
- data/lib/aspera/cli/plugins/node.rb +67 -71
- data/lib/aspera/cli/plugins/oauth.rb +5 -12
- data/lib/aspera/cli/plugins/orchestrator.rb +13 -13
- data/lib/aspera/cli/plugins/preview.rb +116 -80
- data/lib/aspera/cli/plugins/server.rb +2 -10
- data/lib/aspera/cli/plugins/shares.rb +7 -7
- data/lib/aspera/cli/sync_actions.rb +1 -1
- data/lib/aspera/cli/transfer_agent.rb +17 -15
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +22 -18
- data/lib/aspera/dot_container.rb +7 -3
- data/lib/aspera/environment.rb +6 -5
- data/lib/aspera/formatter_interface.rb +14 -0
- data/lib/aspera/hash_ext.rb +6 -0
- data/lib/aspera/log.rb +5 -4
- data/lib/aspera/markdown.rb +4 -1
- data/lib/aspera/oauth/factory.rb +1 -1
- data/lib/aspera/preview/file_types.rb +1 -1
- data/lib/aspera/preview/generator.rb +146 -91
- data/lib/aspera/preview/options.rb +4 -1
- data/lib/aspera/preview/terminal.rb +50 -20
- data/lib/aspera/preview/utils.rb +76 -34
- data/lib/aspera/products/transferd.rb +1 -1
- data/lib/aspera/proxy_auto_config.rb +3 -0
- data/lib/aspera/rest.rb +2 -1
- data/lib/aspera/rest_list.rb +23 -16
- data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +62801 -0
- data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +8898 -0
- data/lib/aspera/schema/documentation.rb +107 -0
- data/lib/aspera/schema/reader.rb +75 -0
- data/lib/aspera/schema/registry.rb +63 -0
- data/lib/aspera/secret_hider.rb +3 -1
- data/lib/aspera/sync/conf.schema.yaml +0 -26
- data/lib/aspera/sync/operations.rb +9 -5
- data/lib/aspera/transfer/faux_file.rb +1 -1
- data/lib/aspera/transfer/resumer.rb +1 -1
- data/lib/aspera/transfer/spec.rb +3 -3
- data/lib/aspera/transfer/spec.schema.yaml +1 -1
- data/lib/aspera/uri_reader.rb +17 -2
- data/lib/aspera/yaml.rb +4 -2
- data.tar.gz.sig +0 -0
- metadata +13 -7
- metadata.gz.sig +0 -0
- data/lib/aspera/transfer/spec_doc.rb +0 -76
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'aspera/agent/factory'
|
|
4
|
-
require 'aspera/markdown'
|
|
5
|
-
|
|
6
|
-
module Aspera
|
|
7
|
-
module Transfer
|
|
8
|
-
# Generate documentation from Schema, for Transfer Spec, or async Conf spec
|
|
9
|
-
class SpecDoc
|
|
10
|
-
class << self
|
|
11
|
-
# @param formatter [Cli::Formatter] Formatter to use, methods: markdown_text, tick, check_row
|
|
12
|
-
# @param include_option [Boolean] `true` : include CLI options
|
|
13
|
-
# @param agent_columns [Boolean] `true` : include agents columns
|
|
14
|
-
# @param schema [Hash] The JSON spec
|
|
15
|
-
# @return [Array] a table suitable to display in manual
|
|
16
|
-
def man_table(formatter, include_option: false, agent_columns: true, schema: Spec::SCHEMA)
|
|
17
|
-
cols = %i[name type description]
|
|
18
|
-
cols.insert(-2, *Agent::Factory::ALL.values.map{ |i| i[:short]}.sort) if agent_columns
|
|
19
|
-
rows = []
|
|
20
|
-
schema['properties'].each do |name, info|
|
|
21
|
-
rows.concat(man_table(formatter, include_option: include_option, agent_columns: agent_columns, schema: info).last.map{ |h| h.merge(name: "#{name}.#{h[:name]}")}) if info['type'].eql?('object') && info['properties']
|
|
22
|
-
rows.concat(man_table(formatter, include_option: include_option, agent_columns: agent_columns, schema: info['items']).last.map{ |h| h.merge(name: "#{name}[].#{h[:name]}")}) if info['type'].eql?('array') && info['items'] && info['items']['properties']
|
|
23
|
-
# Manual table
|
|
24
|
-
columns = {
|
|
25
|
-
name: name,
|
|
26
|
-
type: info['type'],
|
|
27
|
-
description: []
|
|
28
|
-
}
|
|
29
|
-
# Render Markdown formatting and split lines
|
|
30
|
-
columns[:description] =
|
|
31
|
-
info['description']
|
|
32
|
-
.gsub(Markdown::FORMATS){formatter.markdown_text(Regexp.last_match)}
|
|
33
|
-
.split("\n") if info.key?('description')
|
|
34
|
-
columns[:description].unshift("DEPRECATED: #{info['x-deprecation']}") if info.key?('x-deprecation')
|
|
35
|
-
# Add flags for supported agents in doc
|
|
36
|
-
agents = []
|
|
37
|
-
Agent::Factory::ALL.each_key do |sym|
|
|
38
|
-
agents.push(sym) if info['x-agents'].nil? || info['x-agents'].include?(sym.to_s)
|
|
39
|
-
end
|
|
40
|
-
Aspera.assert(agents.include?(:direct)){"#{name}: x-cli-option requires agent direct (or nil)"} if info['x-cli-option']
|
|
41
|
-
if agent_columns
|
|
42
|
-
Agent::Factory::ALL.each do |sym, names|
|
|
43
|
-
columns[names[:short]] = formatter.tick(agents.include?(sym))
|
|
44
|
-
end
|
|
45
|
-
else
|
|
46
|
-
columns[:description].push("(#{agents.map{ |i| Agent::Factory::ALL[i][:short].to_s.upcase}.sort.join(', ')})") unless agents.length.eql?(Agent::Factory::ALL.length)
|
|
47
|
-
end
|
|
48
|
-
# Only keep lines that are usable in supported agents
|
|
49
|
-
next false if agents.empty?
|
|
50
|
-
columns[:description].push("Allowed values: #{info['enum'].map{ |v| formatter.markdown_text("`#{v}`")}.join(', ')}") if info.key?('enum')
|
|
51
|
-
if include_option
|
|
52
|
-
envvar_prefix = ''
|
|
53
|
-
cli_option =
|
|
54
|
-
if info.key?('x-cli-envvar')
|
|
55
|
-
envvar_prefix = 'env:'
|
|
56
|
-
info['x-cli-envvar']
|
|
57
|
-
elsif info['x-cli-switch']
|
|
58
|
-
info['x-cli-option']
|
|
59
|
-
elsif info['x-cli-option']
|
|
60
|
-
arg_type = info.key?('enum') ? '{enum}' : "{#{[info['type']].flatten.join('|')}}"
|
|
61
|
-
# conversion_tag = info['x-cli-convert']
|
|
62
|
-
conversion_tag = info.key?('x-cli-convert') ? 'conversion' : nil
|
|
63
|
-
sep = info['x-cli-option'].start_with?('--') ? '=' : ' '
|
|
64
|
-
"#{info['x-cli-option']}#{sep}#{"(#{conversion_tag})" if conversion_tag}#{arg_type}"
|
|
65
|
-
end
|
|
66
|
-
short = info.key?('x-cli-short') ? "(#{info['x-cli-short']})" : nil
|
|
67
|
-
columns[:description].push("(#{'special:' if info['x-cli-special']}#{envvar_prefix}#{formatter.markdown_text("`#{cli_option}`")})#{short}") if cli_option
|
|
68
|
-
end
|
|
69
|
-
rows.push(formatter.check_row(columns))
|
|
70
|
-
end
|
|
71
|
-
[cols, rows.sort_by{ |i| i[:name]}]
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|