aspera-cli 4.13.0 → 4.15.0
Sign up to get free protection for your applications and to get access to all the features.
- 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" "$@"
|