aspera-cli 4.13.0 → 4.15.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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +81 -7
- data/CONTRIBUTING.md +22 -6
- data/README.md +2038 -1080
- data/bin/ascli +18 -9
- data/bin/asession +12 -14
- data/examples/dascli +1 -1
- data/examples/proxy.pac +1 -1
- data/examples/rubyc +24 -0
- data/lib/aspera/aoc.rb +219 -159
- data/lib/aspera/ascmd.rb +25 -14
- data/lib/aspera/cli/basic_auth_plugin.rb +12 -9
- data/lib/aspera/cli/error.rb +17 -0
- data/lib/aspera/cli/extended_value.rb +47 -12
- data/lib/aspera/cli/formatter.rb +260 -179
- data/lib/aspera/cli/hints.rb +80 -0
- data/lib/aspera/cli/main.rb +104 -156
- data/lib/aspera/cli/manager.rb +259 -209
- data/lib/aspera/cli/plugin.rb +123 -63
- data/lib/aspera/cli/plugins/alee.rb +2 -3
- data/lib/aspera/cli/plugins/aoc.rb +341 -261
- data/lib/aspera/cli/plugins/ats.rb +22 -21
- data/lib/aspera/cli/plugins/bss.rb +5 -5
- data/lib/aspera/cli/plugins/config.rb +578 -627
- data/lib/aspera/cli/plugins/console.rb +44 -6
- data/lib/aspera/cli/plugins/cos.rb +15 -17
- data/lib/aspera/cli/plugins/faspex.rb +114 -100
- data/lib/aspera/cli/plugins/faspex5.rb +411 -264
- data/lib/aspera/cli/plugins/node.rb +354 -259
- data/lib/aspera/cli/plugins/orchestrator.rb +61 -29
- data/lib/aspera/cli/plugins/preview.rb +82 -90
- data/lib/aspera/cli/plugins/server.rb +79 -32
- data/lib/aspera/cli/plugins/shares.rb +55 -42
- data/lib/aspera/cli/sync_actions.rb +68 -0
- data/lib/aspera/cli/transfer_agent.rb +66 -73
- data/lib/aspera/cli/transfer_progress.rb +74 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/colors.rb +12 -8
- data/lib/aspera/command_line_builder.rb +14 -11
- data/lib/aspera/cos_node.rb +3 -2
- data/lib/aspera/data/6 +0 -0
- data/lib/aspera/environment.rb +24 -9
- data/lib/aspera/fasp/agent_aspera.rb +126 -0
- data/lib/aspera/fasp/agent_base.rb +31 -77
- data/lib/aspera/fasp/agent_connect.rb +25 -21
- data/lib/aspera/fasp/agent_direct.rb +89 -103
- data/lib/aspera/fasp/agent_httpgw.rb +231 -149
- data/lib/aspera/fasp/agent_node.rb +41 -34
- data/lib/aspera/fasp/agent_trsdk.rb +75 -32
- data/lib/aspera/fasp/error_info.rb +4 -2
- data/lib/aspera/fasp/faux_file.rb +52 -0
- data/lib/aspera/fasp/installation.rb +53 -195
- data/lib/aspera/fasp/management.rb +244 -0
- data/lib/aspera/fasp/parameters.rb +71 -37
- data/lib/aspera/fasp/parameters.yaml +76 -8
- data/lib/aspera/fasp/products.rb +162 -0
- data/lib/aspera/fasp/resume_policy.rb +3 -3
- data/lib/aspera/fasp/transfer_spec.rb +7 -6
- data/lib/aspera/fasp/uri.rb +26 -24
- data/lib/aspera/faspex_gw.rb +2 -2
- data/lib/aspera/faspex_postproc.rb +2 -2
- data/lib/aspera/hash_ext.rb +14 -4
- data/lib/aspera/json_rpc.rb +49 -0
- data/lib/aspera/keychain/macos_security.rb +13 -13
- data/lib/aspera/line_logger.rb +23 -0
- data/lib/aspera/log.rb +58 -16
- data/lib/aspera/node.rb +157 -92
- data/lib/aspera/oauth.rb +37 -19
- data/lib/aspera/open_application.rb +4 -4
- data/lib/aspera/persistency_action_once.rb +1 -1
- data/lib/aspera/persistency_folder.rb +2 -2
- data/lib/aspera/preview/file_types.rb +4 -2
- data/lib/aspera/preview/generator.rb +22 -35
- data/lib/aspera/preview/options.rb +2 -0
- data/lib/aspera/preview/terminal.rb +73 -16
- data/lib/aspera/preview/utils.rb +21 -28
- data/lib/aspera/proxy_auto_config.js +2 -2
- data/lib/aspera/rest.rb +136 -68
- data/lib/aspera/rest_call_error.rb +1 -1
- data/lib/aspera/rest_error_analyzer.rb +15 -14
- data/lib/aspera/rest_errors_aspera.rb +37 -34
- data/lib/aspera/secret_hider.rb +18 -15
- data/lib/aspera/ssh.rb +5 -2
- data/lib/aspera/sync.rb +127 -119
- data/lib/aspera/temp_file_manager.rb +10 -3
- data/lib/aspera/web_auth.rb +10 -7
- data/lib/aspera/web_server_simple.rb +9 -4
- data.tar.gz.sig +0 -0
- metadata +34 -17
- metadata.gz.sig +0 -0
- data/docs/test_env.conf +0 -186
- data/lib/aspera/cli/listener/line_dump.rb +0 -19
- data/lib/aspera/cli/listener/logger.rb +0 -22
- data/lib/aspera/cli/listener/progress.rb +0 -50
- data/lib/aspera/cli/listener/progress_multi.rb +0 -84
- data/lib/aspera/cli/plugins/sync.rb +0 -44
- data/lib/aspera/data/7 +0 -0
- data/lib/aspera/fasp/listener.rb +0 -13
data/bin/ascli
CHANGED
@@ -1,29 +1,38 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
# compute gem root based on this script location
|
7
|
-
GEM_ROOT = File.realpath(File.join(File.dirname(File.realpath(__FILE__)), '..'))
|
4
|
+
Encoding.default_internal = Encoding::UTF_8
|
5
|
+
Encoding.default_external = Encoding::UTF_8
|
8
6
|
# coverage for tests
|
9
7
|
if ENV.key?('ENABLE_COVERAGE')
|
10
8
|
require 'simplecov'
|
11
|
-
|
9
|
+
require 'securerandom'
|
10
|
+
# compute gem source root based on this script location, assuming it is in bin/
|
11
|
+
# use dirname instead of gsub, in case folder separator is not /
|
12
|
+
development_root = File.dirname(File.dirname(File.realpath(__FILE__)))
|
13
|
+
SimpleCov.root(development_root)
|
12
14
|
SimpleCov.enable_for_subprocesses if SimpleCov.respond_to?(:enable_for_subprocesses)
|
13
15
|
# keep cache data for 1 day (must be longer that time to run the whole test suite)
|
14
16
|
SimpleCov.merge_timeout(86400)
|
15
17
|
SimpleCov.command_name(SecureRandom.uuid)
|
16
18
|
SimpleCov.at_exit do
|
17
19
|
original_file_descriptor = $stdout
|
18
|
-
$stdout.reopen(File.join(
|
20
|
+
$stdout.reopen(File.join(development_root, 'simplecov.log'))
|
19
21
|
SimpleCov.result.format!
|
20
22
|
$stdout.reopen(original_file_descriptor)
|
21
23
|
end
|
22
24
|
SimpleCov.start
|
23
25
|
end
|
24
26
|
# if in development, add path to gem
|
25
|
-
|
26
|
-
|
27
|
+
#
|
28
|
+
begin
|
29
|
+
require 'aspera/cli/main'
|
30
|
+
rescue LoadError
|
31
|
+
# development environment
|
32
|
+
development_root = File.dirname(File.dirname(File.realpath(__FILE__)))
|
33
|
+
$LOAD_PATH.unshift(File.join(development_root, 'lib'))
|
34
|
+
require 'aspera/cli/main'
|
35
|
+
end
|
27
36
|
require 'aspera/environment'
|
28
37
|
Aspera::Environment.fix_home
|
29
38
|
Aspera::Cli::Main.new(ARGV).process_command_line
|
data/bin/asession
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
# Laurent Martin/2017
|
5
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__)
|
5
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib")
|
6
6
|
require 'aspera/fasp/agent_direct'
|
7
|
-
require 'aspera/cli/listener/line_dump'
|
8
7
|
require 'aspera/cli/extended_value'
|
9
8
|
require 'aspera/log'
|
10
9
|
require 'json'
|
11
|
-
# extended transfer spec parameter
|
12
|
-
|
10
|
+
# extended transfer spec parameter (only used in asession)
|
11
|
+
# Change log level
|
12
|
+
TS_LOG_LEVEL = 'EX_loglevel'
|
13
13
|
# by default go to /tmp/username.filelist
|
14
|
-
|
14
|
+
TS_TMP_FILE_LIST_FOLDER = 'EX_file_list_folder'
|
15
15
|
|
16
16
|
SAMPLE_DEMO = '"remote_host":"demo.asperasoft.com","remote_user":"asperaweb","ssh_port":33001,"remote_password":"demoaspera"'
|
17
17
|
SAMPLE_DEMO2 = '"direction":"receive","destination_root":"./test.dir"'
|
@@ -34,7 +34,7 @@ def assert_usage(assertion, error_message)
|
|
34
34
|
$stderr.puts(' {"type":"START","source":"/aspera-test-dir-tiny/200KB.2"}')
|
35
35
|
$stderr.puts(' {"type":"START","source":"xx","destination":"yy"}')
|
36
36
|
$stderr.puts(' {"type":"DONE"}')
|
37
|
-
$stderr.puts(%Q(Note: debug information can be placed on STDERR, using the "#{
|
37
|
+
$stderr.puts(%Q(Note: debug information can be placed on STDERR, using the "#{TS_LOG_LEVEL}" parameter in transfer spec (debug=0)))
|
38
38
|
$stderr.puts('EXAMPLES')
|
39
39
|
$stderr.puts(%Q( asession @json:'{#{SAMPLE_DEMO},#{SAMPLE_DEMO2},"paths":[{"source":"/aspera-test-dir-tiny/200KB.1"}]}'))
|
40
40
|
$stderr.puts(%q( echo '{"remote_host":...}'|asession @json:@stdin))
|
@@ -60,19 +60,17 @@ end
|
|
60
60
|
# ensure right type
|
61
61
|
assert_usage(transfer_spec.is_a?(Hash), "the value must be a hash table#{parameter_source_err_msg}")
|
62
62
|
# additional debug capability
|
63
|
-
if transfer_spec.key?(
|
64
|
-
Aspera::Log.instance.level = transfer_spec[
|
65
|
-
transfer_spec.delete(
|
63
|
+
if transfer_spec.key?(TS_LOG_LEVEL)
|
64
|
+
Aspera::Log.instance.level = transfer_spec[TS_LOG_LEVEL]
|
65
|
+
transfer_spec.delete(TS_LOG_LEVEL)
|
66
66
|
end
|
67
67
|
# possibly override temp folder
|
68
|
-
if transfer_spec.key?(
|
69
|
-
Aspera::Fasp::Parameters.file_list_folder = transfer_spec[
|
70
|
-
transfer_spec.delete(
|
68
|
+
if transfer_spec.key?(TS_TMP_FILE_LIST_FOLDER)
|
69
|
+
Aspera::Fasp::Parameters.file_list_folder = transfer_spec[TS_TMP_FILE_LIST_FOLDER]
|
70
|
+
transfer_spec.delete(TS_TMP_FILE_LIST_FOLDER)
|
71
71
|
end
|
72
72
|
# get local agent (ascp), disable ascp output on stdout to not mix with JSON events
|
73
73
|
client = Aspera::Fasp::AgentDirect.new({quiet: true})
|
74
|
-
# display JSON instead of legacy Lines
|
75
|
-
client.add_listener(Aspera::Cli::Listener::LineDump.new)
|
76
74
|
# start transfer (asynchronous)
|
77
75
|
job_id = client.start_transfer(transfer_spec)
|
78
76
|
# async commands
|
data/examples/dascli
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env bash
|
2
2
|
# set env var image to specify another docker image
|
3
|
-
: "${image:=martinlaurent/ascli}"
|
3
|
+
: "${image:=docker.io/martinlaurent/ascli}"
|
4
4
|
# set env var version to specify another image version (default: latest version)
|
5
5
|
: "${version:=latest}"
|
6
6
|
# set env var imgtag to specify a specific image/version
|
data/examples/proxy.pac
CHANGED
data/examples/rubyc
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# https://github.com/you54f/ruby-packer
|
3
|
+
# https://github.com/YOU54F/ruby-packer/releases
|
4
|
+
set -e
|
5
|
+
FOLDER="$(dirname $0)/../tmp"
|
6
|
+
RUBYC="$FOLDER/rubyc"
|
7
|
+
if test ! -e "$RUBYC"; then
|
8
|
+
mkdir -p "$FOLDER"
|
9
|
+
case $(uname -sm|tr ' ' -) in
|
10
|
+
Darwin-arm64)
|
11
|
+
curl -L https://github.com/YOU54F/ruby-packer/releases/download/rel-20230812/rubyc-Darwin-arm64.tar.gz | tar -xz -C "$FOLDER"
|
12
|
+
mv "$FOLDER/rubyc-Darwin-arm64" "$RUBYC"
|
13
|
+
;;
|
14
|
+
Linux-x86_64)
|
15
|
+
curl -L https://github.com/YOU54F/ruby-packer/releases/download/rel-20230812/rubyc-Linux-x86_64.tar.gz | tar -xz -C "$FOLDER"
|
16
|
+
mv "$FOLDER/rubyc-Linux-x86_64" "$RUBYC"
|
17
|
+
;;
|
18
|
+
*)
|
19
|
+
echo "This architecture is not supported." >&2
|
20
|
+
exit 1
|
21
|
+
;;
|
22
|
+
esac
|
23
|
+
fi
|
24
|
+
exec "$RUBYC" "$@"
|