aspera-cli 4.27.2 → 4.27.4
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 +133 -0
- data/CONTRIBUTING.md +5 -2
- data/bin/ascli +3 -1
- data/docs/README.md +1006 -766
- data/lib/aspera/agent/base.rb +7 -2
- data/lib/aspera/agent/connect.rb +6 -8
- data/lib/aspera/agent/desktop.rb +2 -6
- data/lib/aspera/agent/direct.rb +52 -22
- data/lib/aspera/agent/node.rb +9 -8
- data/lib/aspera/agent/transferd.rb +2 -2
- data/lib/aspera/api/alee.rb +1 -1
- data/lib/aspera/api/aoc.rb +14 -12
- data/lib/aspera/api/ats.rb +1 -1
- data/lib/aspera/api/cos_node.rb +2 -2
- data/lib/aspera/api/faspex.rb +11 -7
- data/lib/aspera/api/httpgw.rb +38 -35
- data/lib/aspera/api/node.rb +39 -34
- data/lib/aspera/ascmd.rb +3 -1
- data/lib/aspera/ascp/installation.rb +63 -28
- data/lib/aspera/ascp/management.rb +1 -0
- data/lib/aspera/assert.rb +4 -0
- data/lib/aspera/cli/ascp_actions.rb +20 -41
- data/lib/aspera/cli/async_transfer_store.rb +12 -11
- data/lib/aspera/cli/bootstrapper.rb +14 -16
- data/lib/aspera/cli/command_line.rb +252 -0
- data/lib/aspera/cli/command_registry.rb +215 -37
- data/lib/aspera/cli/command_spec.rb +104 -15
- data/lib/aspera/cli/completion/ascli.bash +12 -0
- data/lib/aspera/cli/completion/ascli.fish +16 -0
- data/lib/aspera/cli/completion/ascli.zsh +19 -0
- data/lib/aspera/cli/context.rb +3 -0
- data/lib/aspera/cli/deprecation.rb +37 -0
- data/lib/aspera/cli/extended_value.rb +6 -3
- data/lib/aspera/cli/formatter.rb +94 -80
- data/lib/aspera/cli/gem_checker.rb +1 -1
- data/lib/aspera/cli/hints.rb +7 -6
- data/lib/aspera/cli/http.rb +22 -34
- data/lib/aspera/cli/info.rb +3 -0
- data/lib/aspera/cli/mcp_tool.rb +47 -83
- data/lib/aspera/cli/option_declarator.rb +33 -42
- data/lib/aspera/cli/option_registry.rb +69 -0
- data/lib/aspera/cli/option_types.rb +105 -0
- data/lib/aspera/cli/option_value.rb +278 -0
- data/lib/aspera/cli/options.schema.yaml +124 -15
- data/lib/aspera/cli/parser.rb +333 -862
- data/lib/aspera/cli/plugins/alee.rb +7 -4
- data/lib/aspera/cli/plugins/aoc.rb +545 -518
- data/lib/aspera/cli/plugins/ats.rb +59 -80
- data/lib/aspera/cli/plugins/base.rb +221 -265
- data/lib/aspera/cli/plugins/basic_auth.rb +2 -10
- data/lib/aspera/cli/plugins/config.rb +263 -184
- data/lib/aspera/cli/plugins/console.rb +103 -39
- data/lib/aspera/cli/plugins/cos.rb +6 -23
- data/lib/aspera/cli/plugins/factory.rb +3 -0
- data/lib/aspera/cli/plugins/faspex5.rb +204 -182
- data/lib/aspera/cli/plugins/faspio.rb +6 -11
- data/lib/aspera/cli/plugins/httpgw.rb +8 -11
- data/lib/aspera/cli/plugins/mcp.rb +20 -55
- data/lib/aspera/cli/plugins/node.rb +300 -327
- data/lib/aspera/cli/plugins/orchestrator.rb +152 -110
- data/lib/aspera/cli/plugins/preview.rb +96 -105
- data/lib/aspera/cli/plugins/server.rb +78 -53
- data/lib/aspera/cli/plugins/shares.rb +80 -131
- data/lib/aspera/cli/preset_actions.rb +44 -27
- data/lib/aspera/cli/preset_manager.rb +44 -19
- data/lib/aspera/cli/prompt.rb +36 -0
- data/lib/aspera/cli/result.rb +42 -36
- data/lib/aspera/cli/runner.rb +32 -59
- data/lib/aspera/cli/special_values.rb +5 -0
- data/lib/aspera/cli/sync_actions.rb +51 -46
- data/lib/aspera/cli/terminal_formatter.rb +9 -3
- data/lib/aspera/cli/transfer_actions.rb +14 -9
- data/lib/aspera/cli/transfer_agent.rb +34 -38
- data/lib/aspera/cli/transfer_progress.rb +290 -55
- data/lib/aspera/cli/vault_manager.rb +0 -17
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/wizard.rb +5 -3
- data/lib/aspera/coverage.rb +1 -1
- data/lib/aspera/environment.rb +35 -5
- data/lib/aspera/faspex_gw.rb +2 -1
- data/lib/aspera/faspex_postproc.rb +1 -0
- data/lib/aspera/graphql.rb +5 -5
- data/lib/aspera/json_rpc/client.rb +5 -5
- data/lib/aspera/keychain/encrypted_hash.rb +2 -2
- data/lib/aspera/keychain/factory.rb +2 -1
- data/lib/aspera/keychain/one_password_api.rb +1 -1
- data/lib/aspera/link_header.rb +2 -2
- data/lib/aspera/log.rb +47 -27
- data/lib/aspera/markdown.rb +2 -0
- data/lib/aspera/mime.rb +25 -0
- data/lib/aspera/node_emulator.rb +759 -0
- data/lib/aspera/oauth/base.rb +37 -26
- data/lib/aspera/oauth/factory.rb +7 -3
- data/lib/aspera/oauth/generic.rb +1 -1
- data/lib/aspera/oauth/json_credentials.rb +34 -0
- data/lib/aspera/oauth/jwt.rb +4 -5
- data/lib/aspera/oauth/web.rb +9 -8
- data/lib/aspera/oauth.rb +1 -0
- data/lib/aspera/persistency_folder.rb +1 -3
- data/lib/aspera/preview/file_types.rb +4 -4
- data/lib/aspera/preview/generator.rb +11 -1
- data/lib/aspera/preview/options.schema.yaml +119 -0
- data/lib/aspera/preview/terminal.rb +4 -3
- data/lib/aspera/preview/utils.rb +9 -6
- data/lib/aspera/products/connect.rb +1 -1
- data/lib/aspera/rainbow.rb +7 -0
- data/lib/aspera/rest/aspera_errors.rb +72 -0
- data/lib/aspera/rest/call_error.rb +27 -0
- data/lib/aspera/rest/client.rb +523 -0
- data/lib/aspera/rest/error_analyzer.rb +113 -0
- data/lib/aspera/rest/list.rb +149 -0
- data/lib/aspera/rest/parameters.rb +55 -0
- data/lib/aspera/rest/util.rb +176 -0
- data/lib/aspera/rest.rb +7 -621
- data/lib/aspera/schema/IBM Aspera Console-enhanced.yaml +1125 -0
- data/lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml +0 -20
- data/lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml +1784 -0
- data/lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml +1230 -137
- data/lib/aspera/schema/IBM Aspera on Cloud Automation API-1.0.5-enhanced.yaml +2395 -0
- data/lib/aspera/schema/IBM_Aspera_Shares.yaml +14 -13
- data/lib/aspera/schema/documentation.rb +13 -3
- data/lib/aspera/schema/reader.rb +12 -18
- data/lib/aspera/schema/registry.rb +23 -1
- data/lib/aspera/schema/validator.rb +92 -0
- data/lib/aspera/secret_hider.rb +36 -25
- data/lib/aspera/string_ext.rb +15 -0
- data/lib/aspera/temp_file_manager.rb +6 -5
- data/lib/aspera/transfer/parameters.rb +2 -0
- data/lib/aspera/transfer/spec.rb +1 -0
- data/lib/aspera/uri_reader.rb +11 -11
- data/lib/aspera/web_auth/index.html +147 -0
- data/lib/aspera/web_auth/server.rb +81 -0
- data.tar.gz.sig +0 -0
- metadata +43 -9
- metadata.gz.sig +0 -0
- data/lib/aspera/colors.rb +0 -79
- data/lib/aspera/node_simulator.rb +0 -344
- data/lib/aspera/preview/options.rb +0 -45
- data/lib/aspera/rest_call_error.rb +0 -25
- data/lib/aspera/rest_error_analyzer.rb +0 -111
- data/lib/aspera/rest_errors_aspera.rb +0 -58
- data/lib/aspera/rest_list.rb +0 -136
- data/lib/aspera/web_auth.rb +0 -211
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<link rel="icon" type="image/svg+xml"
|
|
7
|
+
href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIiBmaWxsPSJub25lIiBzdHJva2U9IiMyMjIiIHN0cm9rZS13aWR0aD0iMyI+CiAgPGxpbmUgeDE9IjMiIHkxPSIzIiB4Mj0iMjkiIHkyPSIyOSIgIHN0cm9rZT0icmVkIi8+CiAgPGxpbmUgeDE9IjI5IiB5MT0iMyIgeDI9IjMiIHkyPSIyOSIgc3Ryb2tlPSJyZWQiIC8+Cjwvc3ZnPg==">
|
|
8
|
+
<title>Close Now</title>
|
|
9
|
+
<style>
|
|
10
|
+
body {
|
|
11
|
+
font-family: Arial, sans-serif;
|
|
12
|
+
text-align: center;
|
|
13
|
+
padding: 2rem;
|
|
14
|
+
margin: 0;
|
|
15
|
+
background: linear-gradient(135deg, #f0f4f8, #d9e2ec);
|
|
16
|
+
color: #333;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
/* Ensure no scrollbars for the background animation */
|
|
19
|
+
position: relative;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
h1 {
|
|
23
|
+
font-size: 2.5rem;
|
|
24
|
+
color: #0078d4;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
p {
|
|
28
|
+
font-size: 1.2rem;
|
|
29
|
+
margin-top: 1rem;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Styling for animated IBM logos */
|
|
33
|
+
.logo {
|
|
34
|
+
position: absolute;
|
|
35
|
+
bottom: -100px;
|
|
36
|
+
width: 40px;
|
|
37
|
+
height: 40px;
|
|
38
|
+
background: none;
|
|
39
|
+
display: flex;
|
|
40
|
+
justify-content: center;
|
|
41
|
+
align-items: center;
|
|
42
|
+
animation: rise 10s infinite ease-in-out;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.logo svg {
|
|
46
|
+
width: 100%;
|
|
47
|
+
height: 100%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.logo:nth-child(odd) {
|
|
51
|
+
animation-duration: 8s;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.logo:nth-child(even) {
|
|
55
|
+
animation-duration: 12s;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes rise {
|
|
59
|
+
0% {
|
|
60
|
+
transform: translateY(0) scale(1);
|
|
61
|
+
opacity: 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
50% {
|
|
65
|
+
opacity: 0.7;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
100% {
|
|
69
|
+
transform: translateY(-120vh) scale(0.7);
|
|
70
|
+
opacity: 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
74
|
+
</head>
|
|
75
|
+
|
|
76
|
+
<body>
|
|
77
|
+
<h1>Thank You!</h1>
|
|
78
|
+
<p>You can close this window.</p>
|
|
79
|
+
__ADD_INFO__
|
|
80
|
+
|
|
81
|
+
<!-- JavaScript to generate IBM logos -->
|
|
82
|
+
<script>
|
|
83
|
+
// Function to create logos dynamically
|
|
84
|
+
function createLogos() {
|
|
85
|
+
const body = document.body;
|
|
86
|
+
const svgContent = `
|
|
87
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="401.149px" viewBox="0 0 1000 401.149" xml:space="preserve">
|
|
88
|
+
<g>
|
|
89
|
+
<rect fill="#1F70C1" x="0" y="373.217" width="194.433" height="27.833"/>
|
|
90
|
+
<rect fill="#1F70C1" x="0" y="319.83" width="194.433" height="27.931"/>
|
|
91
|
+
<rect fill="#1F70C1" x="55.468" y="266.541" width="83.399" height="27.932"/>
|
|
92
|
+
<rect fill="#1F70C1" x="55.468" y="213.253" width="83.399" height="27.932"/>
|
|
93
|
+
<rect fill="#1F70C1" x="55.468" y="159.964" width="83.399" height="27.932"/>
|
|
94
|
+
<rect fill="#1F70C1" x="55.468" y="106.577" width="83.399" height="27.932"/>
|
|
95
|
+
<rect fill="#1F70C1" x="0" y="53.288" width="194.433" height="27.932"/>
|
|
96
|
+
<rect fill="#1F70C1" x="0" y="0" width="194.433" height="27.932"/>
|
|
97
|
+
<path fill="#1F70C1" d="M222.167,347.761h299.029c5.051-8.617,8.815-18.027,11.094-27.932H222.167V347.761z"/>
|
|
98
|
+
<path fill="#1F70C1" d="M497.92,213.253H277.734v27.932h243.463C514.857,230.487,507.032,221.078,497.92,213.253z"/>
|
|
99
|
+
<path fill="#1F70C1" d="M277.734,159.964v27.932H497.92c9.311-7.825,17.135-17.235,23.277-27.932H277.734z"/>
|
|
100
|
+
<path fill="#1F70C1" d="M521.197,53.288H222.167V81.22H532.29C529.715,71.315,525.951,61.906,521.197,53.288z"/>
|
|
101
|
+
<path fill="#1F70C1" d="M429.279,0H222.167v27.932h278.526C482.072,10.697,456.815,0,429.279,0z"/>
|
|
102
|
+
<rect fill="#1F70C1" x="277.734" y="106.577" width="83.3" height="27.932"/>
|
|
103
|
+
<path fill="#1F70C1" d="M444.433,134.509h87.163c2.476-8.914,3.764-18.324,3.764-27.932h-90.927z"/>
|
|
104
|
+
<rect fill="#1F70C1" x="277.734" y="266.541" width="83.3" height="27.932"/>
|
|
105
|
+
<path fill="#1F70C1" d="M444.433,266.541v27.932h90.927c0-9.608-1.288-19.017-3.764-27.932H444.433z"/>
|
|
106
|
+
<path fill="#1F70C1" d="M222.167,400.852h207.112c27.734,0,52.793-10.697,71.513-27.932H222.167V400.852z"/>
|
|
107
|
+
<rect fill="#1F70C1" x="555.567" y="373.217" width="138.866" height="27.833"/>
|
|
108
|
+
<rect fill="#1F70C1" x="555.567" y="319.83" width="138.866" height="27.931"/>
|
|
109
|
+
<rect fill="#1F70C1" x="611.034" y="266.541" width="83.399" height="27.932"/>
|
|
110
|
+
<rect fill="#1F70C1" x="611.034" y="213.253" width="83.399" height="27.932"/>
|
|
111
|
+
<polygon fill="#1F70C1" points="733.063,53.288 555.567,53.288 555.567,81.22 742.67,81.22"/>
|
|
112
|
+
<polygon fill="#1F70C1" points="714.639,0 555.567,0 555.567,27.932 724.247,27.932"/>
|
|
113
|
+
<rect fill="#1F70C1" x="861.034" y="373.217" width="138.866" height="27.833"/>
|
|
114
|
+
<rect fill="#1F70C1" x="861.034" y="319.83" width="138.866" height="27.931"/>
|
|
115
|
+
<rect fill="#1F70C1" x="861.034" y="266.541" width="83.399" height="27.932"/>
|
|
116
|
+
<rect fill="#1F70C1" x="861.034" y="213.253" width="83.399" height="27.932"/>
|
|
117
|
+
<polygon fill="#1F70C1" points="861.034,187.896 944.433,187.896 944.433,159.964 861.034,159.964 694.433,159.964 611.034,159.964 611.034,187.896 694.433,187.896 852.219,187.896"/>
|
|
118
|
+
<polygon fill="#1F70C1" points="944.433,106.577 803.982,106.577 794.374,134.509 944.433,134.509"/>
|
|
119
|
+
<polygon fill="#1F70C1" points="840.927,0 831.319,27.932 1000,27.932 1000,0"/>
|
|
120
|
+
<polygon fill="#1F70C1" points="777.734,400.852 787.341,373.217 768.126,373.217"/>
|
|
121
|
+
<polygon fill="#1F70C1" points="759.311,347.761 796.157,347.761 806.062,319.83 749.505,319.83"/>
|
|
122
|
+
<polygon fill="#1F70C1" points="740.59,294.473 814.877,294.473 824.683,266.541 730.784,266.541"/>
|
|
123
|
+
<polygon fill="#1F70C1" points="721.969,241.185 833.597,241.185 843.106,213.253 712.361,213.253"/>
|
|
124
|
+
<polygon fill="#1F70C1" points="611.034,134.509 761.093,134.509 751.486,106.577 611.034,106.577"/>
|
|
125
|
+
<polygon fill="#1F70C1" points="812.896,81.22 1000,81.22 1000,53.288 822.405,53.288"/>
|
|
126
|
+
</g>
|
|
127
|
+
</svg>
|
|
128
|
+
`;
|
|
129
|
+
for (let i = 0; i < 20; i++) {
|
|
130
|
+
const logo = document.createElement('div');
|
|
131
|
+
logo.className = 'logo';
|
|
132
|
+
const size = Math.random() * 30 + 20; // Random size between 20px and 50px
|
|
133
|
+
logo.style.width = `${size}px`;
|
|
134
|
+
logo.style.height = `${size}px`;
|
|
135
|
+
logo.style.left = `${Math.random() * 100}vw`;
|
|
136
|
+
logo.style.animationDelay = `${Math.random() * 5}s`;
|
|
137
|
+
logo.innerHTML = svgContent;
|
|
138
|
+
body.appendChild(logo);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Call the function to create logos on load
|
|
143
|
+
createLogos();
|
|
144
|
+
</script>
|
|
145
|
+
</body>
|
|
146
|
+
|
|
147
|
+
</html>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'aspera/web_server_simple'
|
|
4
|
+
require 'aspera/assert'
|
|
5
|
+
require 'erb'
|
|
6
|
+
|
|
7
|
+
module Aspera
|
|
8
|
+
module WebAuth
|
|
9
|
+
# servlet called on callback: it records the callback request
|
|
10
|
+
class Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
11
|
+
# @param server [WEBrick::HTTPServer] the HTTP server instance
|
|
12
|
+
# @param web_auth [Server] the Server instance to record the callback
|
|
13
|
+
def initialize(server, web_auth)
|
|
14
|
+
Log.log.debug('Servlet initialize')
|
|
15
|
+
super(server)
|
|
16
|
+
@web_auth = web_auth
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# called on request
|
|
20
|
+
|
|
21
|
+
def service(request, response)
|
|
22
|
+
Log.log.debug { "received request from browser #{request.request_method} #{request.path}" }
|
|
23
|
+
Aspera.assert_values(request.request_method, ['GET'], type: WEBrick::HTTPStatus::MethodNotAllowed) { "Unsupported method: #{req.request_method}" }
|
|
24
|
+
Aspera.assert_values(request.path, ['/'], type: WEBrick::HTTPStatus::NotFound) { "Unsupported path: #{req.request_method}" }
|
|
25
|
+
# response to browser
|
|
26
|
+
response.status = 200
|
|
27
|
+
response.content_type = 'text/html'
|
|
28
|
+
response.body = File.read("#{__dir__}/index.html").gsub('__ADD_INFO__', @web_auth.info_html)
|
|
29
|
+
# continue internal processing
|
|
30
|
+
@web_auth.signal_request(request)
|
|
31
|
+
nil
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# start a local web server
|
|
36
|
+
# then start a browser that will callback the local server upon authentication
|
|
37
|
+
# store the final query
|
|
38
|
+
class Server < WebServerSimple
|
|
39
|
+
attr_reader :info_html
|
|
40
|
+
|
|
41
|
+
# @param endpoint_url [String] e.g. 'https://127.0.0.1:12345'
|
|
42
|
+
# @param additional_info [String] Information in web page
|
|
43
|
+
def initialize(endpoint_url, additional_info = nil)
|
|
44
|
+
uri = URI.parse(endpoint_url)
|
|
45
|
+
super(uri)
|
|
46
|
+
@mutex = Mutex.new
|
|
47
|
+
@cond = ConditionVariable.new
|
|
48
|
+
@expected_path = uri.path.empty? ? '/' : uri.path
|
|
49
|
+
@query = nil
|
|
50
|
+
@info_html = additional_info.to_s
|
|
51
|
+
@info_html = "<p>#{ERB::Util.html_escape(@info_html)}</p>" unless @info_html.empty?
|
|
52
|
+
# last argument (self) is provided to constructor of servlet
|
|
53
|
+
mount(@expected_path, Servlet, self)
|
|
54
|
+
# server runs in thread
|
|
55
|
+
Thread.new { start }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Called by web server thread on received request
|
|
59
|
+
# @return [nil]
|
|
60
|
+
def signal_request(request)
|
|
61
|
+
raise WEBrick::HTTPStatus::NotFound, "unexpected path: #{request.path}" unless request.path.eql?(@expected_path)
|
|
62
|
+
# acquire lock and signal change
|
|
63
|
+
@mutex.synchronize do
|
|
64
|
+
@query = request.query
|
|
65
|
+
@cond.signal
|
|
66
|
+
end
|
|
67
|
+
nil
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# wait for request on web server (main thread)
|
|
71
|
+
# @return [Hash] the query
|
|
72
|
+
def received_request
|
|
73
|
+
# wait for signal from thread
|
|
74
|
+
@mutex.synchronize { @cond.wait(@mutex) }
|
|
75
|
+
# tell server thread to stop
|
|
76
|
+
shutdown
|
|
77
|
+
return @query
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aspera-cli
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.27.
|
|
4
|
+
version: 4.27.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Laurent Martin
|
|
@@ -94,6 +94,20 @@ dependencies:
|
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: '2.0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: json_schemer
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '2.4'
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '2.4'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: jwt
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -346,9 +360,14 @@ files:
|
|
|
346
360
|
- lib/aspera/cli/ascp_actions.rb
|
|
347
361
|
- lib/aspera/cli/async_transfer_store.rb
|
|
348
362
|
- lib/aspera/cli/bootstrapper.rb
|
|
363
|
+
- lib/aspera/cli/command_line.rb
|
|
349
364
|
- lib/aspera/cli/command_registry.rb
|
|
350
365
|
- lib/aspera/cli/command_spec.rb
|
|
366
|
+
- lib/aspera/cli/completion/ascli.bash
|
|
367
|
+
- lib/aspera/cli/completion/ascli.fish
|
|
368
|
+
- lib/aspera/cli/completion/ascli.zsh
|
|
351
369
|
- lib/aspera/cli/context.rb
|
|
370
|
+
- lib/aspera/cli/deprecation.rb
|
|
352
371
|
- lib/aspera/cli/error.rb
|
|
353
372
|
- lib/aspera/cli/extended_value.rb
|
|
354
373
|
- lib/aspera/cli/formatter.rb
|
|
@@ -359,6 +378,9 @@ files:
|
|
|
359
378
|
- lib/aspera/cli/mailer.rb
|
|
360
379
|
- lib/aspera/cli/mcp_tool.rb
|
|
361
380
|
- lib/aspera/cli/option_declarator.rb
|
|
381
|
+
- lib/aspera/cli/option_registry.rb
|
|
382
|
+
- lib/aspera/cli/option_types.rb
|
|
383
|
+
- lib/aspera/cli/option_value.rb
|
|
362
384
|
- lib/aspera/cli/options.schema.yaml
|
|
363
385
|
- lib/aspera/cli/parser.rb
|
|
364
386
|
- lib/aspera/cli/plugins/alee.rb
|
|
@@ -382,6 +404,7 @@ files:
|
|
|
382
404
|
- lib/aspera/cli/plugins/shares.rb
|
|
383
405
|
- lib/aspera/cli/preset_actions.rb
|
|
384
406
|
- lib/aspera/cli/preset_manager.rb
|
|
407
|
+
- lib/aspera/cli/prompt.rb
|
|
385
408
|
- lib/aspera/cli/result.rb
|
|
386
409
|
- lib/aspera/cli/runner.rb
|
|
387
410
|
- lib/aspera/cli/secret_finder.rb
|
|
@@ -394,7 +417,6 @@ files:
|
|
|
394
417
|
- lib/aspera/cli/vault_manager.rb
|
|
395
418
|
- lib/aspera/cli/version.rb
|
|
396
419
|
- lib/aspera/cli/wizard.rb
|
|
397
|
-
- lib/aspera/colors.rb
|
|
398
420
|
- lib/aspera/command_line_builder.rb
|
|
399
421
|
- lib/aspera/command_line_converter.rb
|
|
400
422
|
- lib/aspera/coverage.rb
|
|
@@ -428,13 +450,15 @@ files:
|
|
|
428
450
|
- lib/aspera/link_header.rb
|
|
429
451
|
- lib/aspera/log.rb
|
|
430
452
|
- lib/aspera/markdown.rb
|
|
453
|
+
- lib/aspera/mime.rb
|
|
431
454
|
- lib/aspera/nagios.rb
|
|
432
|
-
- lib/aspera/
|
|
455
|
+
- lib/aspera/node_emulator.rb
|
|
433
456
|
- lib/aspera/oauth.rb
|
|
434
457
|
- lib/aspera/oauth/base.rb
|
|
435
458
|
- lib/aspera/oauth/boot.rb
|
|
436
459
|
- lib/aspera/oauth/factory.rb
|
|
437
460
|
- lib/aspera/oauth/generic.rb
|
|
461
|
+
- lib/aspera/oauth/json_credentials.rb
|
|
438
462
|
- lib/aspera/oauth/jwt.rb
|
|
439
463
|
- lib/aspera/oauth/url_json.rb
|
|
440
464
|
- lib/aspera/oauth/web.rb
|
|
@@ -443,7 +467,7 @@ files:
|
|
|
443
467
|
- lib/aspera/preview/file_types.rb
|
|
444
468
|
- lib/aspera/preview/generator.rb
|
|
445
469
|
- lib/aspera/preview/image_error.png
|
|
446
|
-
- lib/aspera/preview/options.
|
|
470
|
+
- lib/aspera/preview/options.schema.yaml
|
|
447
471
|
- lib/aspera/preview/terminal.rb
|
|
448
472
|
- lib/aspera/preview/utils.rb
|
|
449
473
|
- lib/aspera/preview/video_error.png
|
|
@@ -453,23 +477,32 @@ files:
|
|
|
453
477
|
- lib/aspera/products/transferd.rb
|
|
454
478
|
- lib/aspera/proxy_auto_config.js
|
|
455
479
|
- lib/aspera/proxy_auto_config.rb
|
|
480
|
+
- lib/aspera/rainbow.rb
|
|
456
481
|
- lib/aspera/rest.rb
|
|
457
|
-
- lib/aspera/
|
|
458
|
-
- lib/aspera/
|
|
459
|
-
- lib/aspera/
|
|
460
|
-
- lib/aspera/
|
|
482
|
+
- lib/aspera/rest/aspera_errors.rb
|
|
483
|
+
- lib/aspera/rest/call_error.rb
|
|
484
|
+
- lib/aspera/rest/client.rb
|
|
485
|
+
- lib/aspera/rest/error_analyzer.rb
|
|
486
|
+
- lib/aspera/rest/list.rb
|
|
487
|
+
- lib/aspera/rest/parameters.rb
|
|
488
|
+
- lib/aspera/rest/util.rb
|
|
489
|
+
- lib/aspera/schema/IBM Aspera Console-enhanced.yaml
|
|
461
490
|
- lib/aspera/schema/IBM Aspera Faspex API-5.0-enhanced.yaml
|
|
462
491
|
- lib/aspera/schema/IBM Aspera Node API-4.4.6.yaml
|
|
492
|
+
- lib/aspera/schema/IBM Aspera Orchestrator API-v1.yaml
|
|
463
493
|
- lib/aspera/schema/IBM Aspera faspio Gateway API-1.0.0.yaml
|
|
464
494
|
- lib/aspera/schema/IBM Aspera on Cloud API-0.2.6-enhanced.yaml
|
|
495
|
+
- lib/aspera/schema/IBM Aspera on Cloud Automation API-1.0.5-enhanced.yaml
|
|
465
496
|
- lib/aspera/schema/IBM_Aspera_Shares.yaml
|
|
466
497
|
- lib/aspera/schema/async_tables.yaml
|
|
467
498
|
- lib/aspera/schema/documentation.rb
|
|
468
499
|
- lib/aspera/schema/reader.rb
|
|
469
500
|
- lib/aspera/schema/registry.rb
|
|
501
|
+
- lib/aspera/schema/validator.rb
|
|
470
502
|
- lib/aspera/secret_hider.rb
|
|
471
503
|
- lib/aspera/ssh.rb
|
|
472
504
|
- lib/aspera/ssl.rb
|
|
505
|
+
- lib/aspera/string_ext.rb
|
|
473
506
|
- lib/aspera/sync/args.schema.yaml
|
|
474
507
|
- lib/aspera/sync/conf.schema.yaml
|
|
475
508
|
- lib/aspera/sync/database.rb
|
|
@@ -484,7 +517,8 @@ files:
|
|
|
484
517
|
- lib/aspera/transfer/spec.rb
|
|
485
518
|
- lib/aspera/transfer/spec.schema.yaml
|
|
486
519
|
- lib/aspera/uri_reader.rb
|
|
487
|
-
- lib/aspera/web_auth.
|
|
520
|
+
- lib/aspera/web_auth/index.html
|
|
521
|
+
- lib/aspera/web_auth/server.rb
|
|
488
522
|
- lib/aspera/web_server_simple.rb
|
|
489
523
|
- lib/aspera/yaml.rb
|
|
490
524
|
- lib/transferd_pb.rb
|
metadata.gz.sig
CHANGED
|
Binary file
|
data/lib/aspera/colors.rb
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# cspell:words
|
|
4
|
-
|
|
5
|
-
# simple vt100 colors
|
|
6
|
-
class String
|
|
7
|
-
class << self
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
def vt_cmd(code); "\e[#{code}m"; end
|
|
11
|
-
end
|
|
12
|
-
# see https://en.wikipedia.org/wiki/ANSI_escape_code
|
|
13
|
-
# symbol is the method name added to String, e.g. "hello".bold
|
|
14
|
-
# it adds control chars to set color (and reset at the end).
|
|
15
|
-
VT_STYLES = {
|
|
16
|
-
bold: 1,
|
|
17
|
-
dim: 2,
|
|
18
|
-
italic: 3,
|
|
19
|
-
underline: 4,
|
|
20
|
-
blink: 5,
|
|
21
|
-
reverse_color: 7,
|
|
22
|
-
invisible: 8,
|
|
23
|
-
strike: 9,
|
|
24
|
-
black: 30,
|
|
25
|
-
red: 31,
|
|
26
|
-
green: 32,
|
|
27
|
-
brown: 33,
|
|
28
|
-
blue: 34,
|
|
29
|
-
magenta: 35,
|
|
30
|
-
cyan: 36,
|
|
31
|
-
gray: 37,
|
|
32
|
-
bg_black: 40,
|
|
33
|
-
bg_red: 41,
|
|
34
|
-
bg_green: 42,
|
|
35
|
-
bg_brown: 43,
|
|
36
|
-
bg_blue: 44,
|
|
37
|
-
bg_magenta: 45,
|
|
38
|
-
bg_cyan: 46,
|
|
39
|
-
bg_gray: 47
|
|
40
|
-
}.freeze
|
|
41
|
-
private_constant :VT_STYLES
|
|
42
|
-
# Defines methods to String, one per entry in VT_STYLES
|
|
43
|
-
VT_STYLES.each do |name, code|
|
|
44
|
-
if $stdout.tty?
|
|
45
|
-
begin_seq = vt_cmd(code)
|
|
46
|
-
end_seq = vt_cmd(
|
|
47
|
-
if code <= 2 then 22
|
|
48
|
-
elsif code <= 8 then code + 20
|
|
49
|
-
elsif code <= 37 then 39
|
|
50
|
-
elsif code <= 47 then 49
|
|
51
|
-
else
|
|
52
|
-
0 # by default reset all
|
|
53
|
-
end
|
|
54
|
-
)
|
|
55
|
-
define_method(name) { "#{begin_seq}#{self}#{end_seq}" }
|
|
56
|
-
else
|
|
57
|
-
define_method(name) { self }
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# Applies the provided list of string decoration (colors).
|
|
62
|
-
# @param colors [Array<Symbol>] List of decorations.
|
|
63
|
-
# @return [String] Enhanced String.
|
|
64
|
-
def apply(*colors)
|
|
65
|
-
colors.reduce(self) { |s, c| s.public_send(c) }
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
# Transform capitalized to snake case
|
|
69
|
-
def capital_to_snake
|
|
70
|
-
return gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
71
|
-
.gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
|
72
|
-
.downcase
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# Transform snake case to capitalized
|
|
76
|
-
def snake_to_capital
|
|
77
|
-
split('_').map(&:capitalize).join
|
|
78
|
-
end
|
|
79
|
-
end
|