aspera-cli 4.18.1 → 4.19.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +13 -0
  4. data/CONTRIBUTING.md +5 -12
  5. data/README.md +60 -29
  6. data/examples/build_exec +85 -0
  7. data/lib/aspera/agent/base.rb +2 -0
  8. data/lib/aspera/agent/direct.rb +108 -104
  9. data/lib/aspera/api/aoc.rb +2 -2
  10. data/lib/aspera/api/httpgw.rb +91 -56
  11. data/lib/aspera/ascp/installation.rb +47 -32
  12. data/lib/aspera/ascp/management.rb +4 -1
  13. data/lib/aspera/ascp/products.rb +1 -7
  14. data/lib/aspera/cli/formatter.rb +24 -18
  15. data/lib/aspera/cli/manager.rb +10 -10
  16. data/lib/aspera/cli/plugin.rb +2 -2
  17. data/lib/aspera/cli/plugin_factory.rb +10 -1
  18. data/lib/aspera/cli/plugins/config.rb +15 -10
  19. data/lib/aspera/cli/plugins/node.rb +4 -3
  20. data/lib/aspera/cli/plugins/server.rb +1 -1
  21. data/lib/aspera/cli/plugins/shares.rb +11 -7
  22. data/lib/aspera/cli/sync_actions.rb +72 -31
  23. data/lib/aspera/cli/transfer_agent.rb +1 -0
  24. data/lib/aspera/cli/transfer_progress.rb +1 -1
  25. data/lib/aspera/cli/version.rb +1 -1
  26. data/lib/aspera/environment.rb +43 -10
  27. data/lib/aspera/faspex_gw.rb +1 -1
  28. data/lib/aspera/keychain/encrypted_hash.rb +2 -0
  29. data/lib/aspera/log.rb +1 -0
  30. data/lib/aspera/node_simulator.rb +1 -1
  31. data/lib/aspera/oauth/jwt.rb +1 -1
  32. data/lib/aspera/oauth/url_json.rb +2 -0
  33. data/lib/aspera/oauth/web.rb +5 -4
  34. data/lib/aspera/secret_hider.rb +3 -2
  35. data/lib/aspera/ssh.rb +1 -1
  36. data/lib/aspera/transfer/faux_file.rb +7 -5
  37. data/lib/aspera/transfer/parameters.rb +27 -19
  38. data/lib/aspera/transfer/spec.rb +8 -10
  39. data/lib/aspera/transfer/sync.rb +52 -47
  40. data/lib/aspera/web_auth.rb +0 -1
  41. data/lib/aspera/web_server_simple.rb +24 -13
  42. data.tar.gz.sig +0 -0
  43. metadata +3 -3
  44. metadata.gz.sig +0 -0
  45. data/examples/rubyc +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 98185fd9f823fc0d85ebf7183d5c88cf6e0aac7cafd8325802bfa0724c52ddf4
4
- data.tar.gz: 848811c07aa60060cae1320cd0512e72a73bb78fee9e1837245ef856af3883de
3
+ metadata.gz: 89df3ebc2bf7a146a16e59154a73efcfc2e11f7767aba28725f9443de04772b7
4
+ data.tar.gz: 33469a2bc4991b106ab3002927e823f280c016fc070a2bdcbb3edb286506041d
5
5
  SHA512:
6
- metadata.gz: ede08e6e6c6ce3ef33d0c402730ee1854b5d0364da3d47ef736f0e7680a9f8cc1098316fe5945c15aab98ed931c26dd625ea7fb9673e70068dfd2755bb7a053a
7
- data.tar.gz: 1bf901163167844fbada435d0cbac759075b51e9f2da22f6f2b97e99be53c202d69e83ec38f0ee4cade3f937a29c502e22e75ac4452b5e0bb426b0fafa7d883c
6
+ metadata.gz: d57c69a340b866cfe5c3003c94ecb3ebc8c61aba7011ee4b8683da60d9615dd060fb94ac153e16eb98bd11f7dfa1deb117b1ca2ecd5bfe5d46e5a390ec290a01
7
+ data.tar.gz: fa364474177bc6d2f648474b1eed12b45733e84a5d4896d3075225ed1212aed27f64725ba38a400a3f9c5da2e7e2acf46d6a41164e5d92c1e2ce3a94498c5401
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  # Changes (Release notes)
2
2
 
3
+ * 4.19.0
4
+ * New Features:
5
+ * `server`: add support for `async` (Aspera Sync) from Transfer SDK
6
+ * **global**: #156 support sending folders with httpgw
7
+ * **global**: new value for option `format`: `multi`
8
+ * Issues Fixed:
9
+ * `aoc`: #157 fix problem with `files browse` on a link
10
+ * `sync`: better documentation and handling of options.
11
+ * Breaking Changes:
12
+ * **global**: Default value for direct agent option `transfer_info.multi_incr_udp` is `true` on Windows, and now `false` on other platforms.
13
+ * **global**: Token based transfers now use the RSA key only. Direct agent option `transfer_info.client_ssh_key` allows changing this behavior.
14
+
3
15
  * 4.18.1
16
+
4
17
  * New Features:
5
18
  * none
6
19
  * Issues Fixed:
data/CONTRIBUTING.md CHANGED
@@ -228,7 +228,7 @@ Then procedure is as follows:
228
228
 
229
229
  ## Docker image build
230
230
 
231
- The Dockerfile template allows customizing the optional copy of gem file , versus install from rubygems,org as well as customizing the retrieval of the SDK.
231
+ The `Dockerfile.tmpl.erb` template allows customization of the optional copying of the `aspera-cli.gem` file, as opposed to installing from rubygems.org. It also supports customizing the retrieval of the SDK.
232
232
 
233
233
  ### Default image build
234
234
 
@@ -278,19 +278,11 @@ make docker_push_beta
278
278
 
279
279
  ## Single executable build
280
280
 
281
- It is possible to build `ascli` as a single native executable using `rubyc` (gem `ruby-packer`).
281
+ Initially, `rubyc` (gem [`ruby-packer`](https://github.com/pmq20/ruby-packer) and [here](https://github.com/you54f/ruby-packer)) was used to build a single executable.
282
282
 
283
- ```bash
284
- make single
285
- ```
286
-
287
- This is based on tool `rubyc` (gem `ruby-packer`): either place the executable in folder `tmp`, or the architecture-specific version will be automatically downloaded.
283
+ https://www.tebako.org/
288
284
 
289
- > **Note:** Perl `Findbin` is needed, install on Linux with:
290
-
291
- ```bash
292
- sudo dnf install -y perl perl-FindBin perl-IPC-Cmd
293
- ```
285
+ A modern version of this is now used: [`tebako`](https://github.com/tamatebako/tebako) for which a container is provided.
294
286
 
295
287
  ## Long Term Implementation and delivery improvements
296
288
 
@@ -299,3 +291,4 @@ sudo dnf install -y perl perl-FindBin perl-IPC-Cmd
299
291
  - <https://github.com/oauth-xx/oauth2>
300
292
  - use gem Thor <http://whatisthor.com/> (or other standard Ruby CLI manager)
301
293
  - Package a single-file executable for various architectures with <https://github.com/pmq20/ruby-packer> (`rubyc`)
294
+ - look at <https://github.com/phusion/traveling-ruby>
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  ## Introduction
12
12
 
13
- Version : 4.18.1
13
+ Version : 4.19.0
14
14
 
15
15
  Laurent/2016-2024
16
16
 
@@ -92,7 +92,7 @@ Once the gem is installed, `ascli` shall be accessible:
92
92
 
93
93
  ```console
94
94
  $ ascli --version
95
- 4.18.1
95
+ 4.19.0
96
96
  ```
97
97
 
98
98
  ### First use
@@ -706,7 +706,7 @@ ascli -v
706
706
  ```
707
707
 
708
708
  ```text
709
- 4.18.1
709
+ 4.19.0
710
710
  ```
711
711
 
712
712
  In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
@@ -1497,6 +1497,7 @@ If transposition of single object is not desired, use option: `transpose_single`
1497
1497
  The style of output can be set using the `format` option, supporting:
1498
1498
 
1499
1499
  - `table` : Text table (default)
1500
+ - `multi` : List of elements are displayed as a list of tables
1500
1501
  - `text` : Value as String
1501
1502
  - `ruby` : Ruby code
1502
1503
  - `json` : JSON code
@@ -1924,7 +1925,8 @@ ascp use /usr/bin/ascp
1924
1925
  check_update
1925
1926
  coffee
1926
1927
  coffee --ui=text
1927
- coffee --ui=text --query=@json:'{"text":"true"}'
1928
+ coffee --ui=text --image=@json:'{"text":true,"double":false}'
1929
+ coffee --ui=text --image=@json:'{"text":true}'
1928
1930
  detect https://faspex4.example.com/path
1929
1931
  detect https://faspex5.example.com/path
1930
1932
  detect https://node.example.com/path
@@ -2745,19 +2747,21 @@ Refer to section [FASP](#fasp-configuration).
2745
2747
 
2746
2748
  The `transfer_info` option accepts the following optional parameters to control multi-session, Web Socket Session, Resume policy and add any argument to `ascp`:
2747
2749
 
2748
- | Name | Type | Description |
2749
- |------------------------|-------|-------------|
2750
- | `wss` | Bool | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: true |
2751
- | `ascp_args` | Array | Array of strings with native `ascp` arguments.<br/>Default: [] |
2752
- | `spawn_timeout_sec` | Float | Multi session<br/>Verification time that `ascp` is running<br/>Default: 3 |
2753
- | `spawn_delay_sec` | Float | Multi session<br/>Delay between startup of sessions<br/>Default: 2 |
2754
- | `multi_incr_udp` | Bool | Multi Session<br/>Increment UDP port on multi-session<br/>If true, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: true |
2755
- | `trusted_certs` | Array | List of repositories for trusted certificates. |
2756
- | `resume` | Hash | Resume parameters. See below |
2757
- | `resume.iter_max` | int | Max number of retry on error<br/>Default: 7 |
2758
- | `resume.sleep_initial` | int | First Sleep before retry<br/>Default: 2 |
2759
- | `resume.sleep_factor` | int | Multiplier of sleep period between attempts<br/>Default: 2 |
2760
- | `resume.sleep_max` | int | Default: 60 |
2750
+ | Name | Type | Description |
2751
+ |------------------------|---------|-------------|
2752
+ | `wss` | Bool | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: true |
2753
+ | `quiet` | Bool | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
2754
+ | `trusted_certs` | Array | List of repositories for trusted certificates. |
2755
+ | `client_ssh_key` | String | SSH Keys to use for token-based transfers. One of: `dsa_rsa`, `rsa`, `per_client`. Default: `rsa` |
2756
+ | `ascp_args` | Array | Array of strings with native `ascp` arguments.<br/>Default: `[]` |
2757
+ | `spawn_timeout_sec` | Float | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
2758
+ | `spawn_delay_sec` | Float | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
2759
+ | `multi_incr_udp` | Bool | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
2760
+ | `resume` | Hash | Resume parameters. See below |
2761
+ | `resume.iter_max` | Integer | Max number of retry on error<br/>Default: `7` |
2762
+ | `resume.sleep_initial` | Integer | First Sleep before retry<br/>Default: `2` |
2763
+ | `resume.sleep_factor` | Integer | Multiplier of sleep period between attempts<br/>Default: `2` |
2764
+ | `resume.sleep_max` | Integer | Default: `60` |
2761
2765
 
2762
2766
  In case of transfer interruption, the agent will **resume** a transfer up to `iter_max` time.
2763
2767
  Sleep between iterations is given by the following formula where `iter_index` is the current iteration index, starting at 0:
@@ -2767,7 +2771,7 @@ max( sleep_max , sleep_initial * sleep_factor ^ iter_index )
2767
2771
  ```
2768
2772
 
2769
2773
  By default, Ruby's root CA store is used to validate any HTTPS endpoint used by `ascp` (e.g. WSS).
2770
- In order to use a custom certificate store, use the `trusted_certs` option.
2774
+ In order to use a custom certificate store, use the `trusted_certs` option of direct agent's option `transfer_info`.
2771
2775
  To use `ascp`'s default, use option: `--transfer-info=@json:'{"trusted_certs":null}'`.
2772
2776
 
2773
2777
  Some transfer errors are considered **retry-able** (e.g. timeout) and some other not (e.g. wrong password).
@@ -3561,7 +3565,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1m&size=0&inc=2&seq=seque
3561
3565
  ```text
3562
3566
  ascli -h
3563
3567
  NAME
3564
- ascli -- a command line tool for Aspera Applications (v4.18.1)
3568
+ ascli -- a command line tool for Aspera Applications (v4.19.0)
3565
3569
 
3566
3570
  SYNOPSIS
3567
3571
  ascli COMMANDS [OPTIONS] [ARGS]
@@ -3593,7 +3597,7 @@ OPTIONS: global
3593
3597
  --interactive=ENUM Use interactive input of missing params: [no], yes
3594
3598
  --ask-options=ENUM Ask even optional options: [no], yes
3595
3599
  --struct-parser=ENUM Default parser when expected value is a struct: json, ruby
3596
- --format=ENUM Output format: text, nagios, ruby, json, jsonpp, yaml, [table], csv, image
3600
+ --format=ENUM Output format: text, nagios, ruby, json, jsonpp, yaml, [table], multi, csv, image
3597
3601
  --output=VALUE Destination for results (String)
3598
3602
  --display=ENUM Output only some information: [info], data, error
3599
3603
  --fields=VALUE Comma separated list of: fields, or ALL, or DEF (String, Array, Regexp, Proc)
@@ -3617,7 +3621,7 @@ OPTIONS: global
3617
3621
  --pid-file=VALUE Write process identifier to file, delete on exit (String)
3618
3622
 
3619
3623
  COMMAND: config
3620
- SUBCOMMANDS: ascp check_update coffee detect documentation echo email_test file flush_tokens folder gem genkey image initdemo open plugins preset proxy_check pubkey remote_certificate smtp_settings throw vault wizard
3624
+ SUBCOMMANDS: ascp check_update coffee detect documentation echo email_test file flush_tokens folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings throw vault wizard
3621
3625
  OPTIONS:
3622
3626
  --home=VALUE Home folder for tool (String)
3623
3627
  --config-file=VALUE Path to YAML file with preset configuration
@@ -5061,8 +5065,11 @@ files show /
5061
5065
  files show testdst/test_file.bin
5062
5066
  files sync admin status --sync-info=@json:'{"name":"my_aoc_sync2","reset":true,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/testdst"}}'
5063
5067
  files sync admin status --sync-info=@json:'{"sessions":[{"name":"my_aoc_sync1","direction":"pull","local_dir":"/data/local_sync","remote_dir":"/testdst","reset":true}]}'
5068
+ files sync start --sync-info=@json:'{"name":"my_aoc_sync1","reset":true,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/testdst"}}'
5064
5069
  files sync start --sync-info=@json:'{"name":"my_aoc_sync2","reset":true,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/testdst"}}'
5065
5070
  files sync start --sync-info=@json:'{"sessions":[{"name":"my_aoc_sync1","direction":"pull","local_dir":"/data/local_sync","remote_dir":"/testdst","reset":true}]}'
5071
+ files sync start pull /testdst /data/local_sync --sync-info=@json:'{"reset":true,"quiet":false}'
5072
+ files sync start pull /testdst /data/local_sync --sync-info=@json:'{"sessions":[{"reset":true}]}'
5066
5073
  files thumbnail my_test_folder/video_file.mpg
5067
5074
  files thumbnail my_test_folder/video_file.mpg --query=@json:'{"text":true,"double":true}'
5068
5075
  files transfer push /testsrc --to-folder=/testdst test_file.bin
@@ -5830,8 +5837,8 @@ ssync summary %name:my_node_sync
5830
5837
  stream list
5831
5838
  sync admin status --sync-info=@json:'{"name":"my_node_sync2","reset":true,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/aspera-test-dir-tiny"}}'
5832
5839
  sync admin status --sync-info=@json:'{"sessions":[{"name":"my_node_sync1","direction":"pull","local_dir":"/data/local_sync","remote_dir":"/aspera-test-dir-tiny","reset":true}]}'
5840
+ sync start --sync-info=@json:'{"name":"my_node_sync1","reset":true,"quiet":false,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/aspera-test-dir-tiny"}}'
5833
5841
  sync start --sync-info=@json:'{"name":"my_node_sync2","reset":true,"direction":"pull","local":{"path":"/data/local_sync"},"remote":{"path":"/aspera-test-dir-tiny"}}'
5834
- sync start --sync-info=@json:'{"sessions":[{"name":"my_node_sync1","direction":"pull","local_dir":"/data/local_sync","remote_dir":"/aspera-test-dir-tiny","reset":true}]}'
5835
5842
  transfer list --query=@json:'{"active_only":true}'
5836
5843
  transfer sessions
5837
5844
  transport
@@ -7124,28 +7131,52 @@ An interface for the `async` utility is provided in the following plugins:
7124
7131
  - `aoc files sync` (uses node)
7125
7132
  - `shares files sync` (uses node)
7126
7133
 
7127
- The main advantage over the `async` command line when using `server` is the possibility to use a configuration file, using standard options of `ascli`.
7134
+ One advantage over the `async` command line is the possibility to use a configuration file, using standard options of `ascli`.
7135
+ Moreover `ascli` supports sync with application requiring token-based authorization.
7128
7136
 
7129
- In this case, some of the `sync` parameters are filled by the related plugin using transfer spec parameters (e.g. including token).
7137
+ Some of the `sync` parameters are filled by the related plugin using transfer spec parameters (e.g. including token).
7130
7138
 
7131
- > **Note:** All `sync` commands require an `async` enabled license and availability of the `async` executable (and `asyncadmin`).
7139
+ > **Note:** All `sync` commands require an `async` enabled license and availability of the `async` executable (and `asyncadmin`). The Transfer SDK 1.3 includes this.
7132
7140
 
7133
- Two JSON syntax are supported for option `sync_info`.
7141
+ `sync` supports 0 or 3 arguments:
7134
7142
 
7135
- ### `async` JSON: API format
7143
+ - direction
7144
+ - local folder
7145
+ - remote folder
7146
+
7147
+ Additional options can be provided with option `sync_info`, for which two syntax are possible, as follows.
7148
+
7149
+ ### `async` API and conf format
7136
7150
 
7137
7151
  It is the same payload as specified on the option `--conf` of `async` or in node API `/asyncs`.
7138
7152
  This is the preferred syntax and allows a single session definition.
7139
- But there is no progress output nor error messages.
7153
+
7154
+ > **Note:** No progress, nor error messages is provided on terminal.
7140
7155
 
7141
7156
  Documentation on Async node API can be found on [IBM Developer Portal](https://developer.ibm.com/apis/catalog?search=%22aspera%20sync%20api%22).
7142
7157
 
7143
- ### `async` JSON: Options mapping
7158
+ If 3 arguments are provided they are mapped to:
7159
+
7160
+ - `direction`
7161
+ - `local.path`
7162
+ - `remote.path`
7163
+
7164
+ ### `async` options mapping
7144
7165
 
7145
7166
  `ascli` defines a JSON equivalent to regular `async`options.
7146
7167
  It is based on a JSON representation of `async` command line options.
7147
7168
  It allows definition of multiple sync sessions in a single command, although usually only one sync session is defined.
7148
7169
 
7170
+ This is the mode selection if there is either keys `sessions` or `instance` in option `sync_info`.
7171
+
7172
+ > **Note:** Progress and error messages are provided on terminal like regular command line invocation of `async`.
7173
+
7174
+ If 3 arguments are provided, they are applied to the first (and only) session and mapped to:
7175
+
7176
+ - `direction`
7177
+ - `local_dir`
7178
+ - `remote_dir`
7179
+
7149
7180
  ## Hot folder
7150
7181
 
7151
7182
  ### Requirements
@@ -0,0 +1,85 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ if test $# -ne 2; then
6
+ echo "Usage: $0 <CLI_TARGET_EXECUTABLE> <CLI_ENTRY_SCRIPT>" 1>&2
7
+ exit 1
8
+ fi
9
+
10
+ CLI_TARGET_EXECUTABLE=$1
11
+ CLI_ENTRY_SCRIPT=$(realpath $2)
12
+ CLI_EXEC_NAME=$(basename $CLI_TARGET_EXECUTABLE)
13
+ CLI_ROOT=$(dirname $(dirname $CLI_ENTRY_SCRIPT))
14
+
15
+ echo "Project folder: $CLI_ROOT"
16
+ echo "Executable: $CLI_TARGET_EXECUTABLE"
17
+ echo "Exec Name: $CLI_EXEC_NAME"
18
+ echo "Entry: $CLI_ENTRY_SCRIPT"
19
+
20
+ # tebako press --root=$(TB_WORK_DIR) --entry-point=ascli --output=$(TB_WORK_DIR)/$(CLI_TARGET_EXECUTABLE) --Ruby=3.2.4
21
+
22
+ if true;then
23
+ tebako_command=tebako
24
+ tebako_args="--root=$CLI_ROOT --entry-point=ascli --output=$CLI_TARGET_EXECUTABLE --Ruby=3.3.3"
25
+ case $(uname -s) in
26
+ Darwin)
27
+ brew update
28
+ brew install gnu-sed bash pkg-config bison flex binutils libffi gdbm zlib \
29
+ ncurses double-conversion boost jemalloc glog libevent libsodium lz4 xz \
30
+ libyaml openssl@3
31
+ # brew install m4
32
+ # boost fmt
33
+ #export PATH=$(dirname $(brew ls m4|grep '/m4$'|head -n 1)):$PATH
34
+ #export PATH=$(dirname $(brew ls binutils|grep '/ar$'|head -n 1)):$PATH
35
+ #tebako_bin=$CLI_ROOT/tmp/tbkbin
36
+ tebako_root=$CLI_ROOT/../tebako-tmp
37
+ #export PATH=$tebako_bin:$PATH
38
+ mkdir -p $tebako_root
39
+ #mkdir -p $tebako_bin
40
+ # need ar from apple
41
+ #rm -f $tebako_bin/ar
42
+ #ln -s /usr/bin/ar $tebako_bin
43
+ export PATH=$(echo $PATH|tr : \\n|grep -v /binutils/|tr \\n :)
44
+ #tebako setup --Ruby=3.3.4 --prefix=$tebako_root
45
+ tebako press --Ruby=3.3.4 --prefix=$tebako_root --root=$CLI_ROOT/examples/tebako --entry-point=ascli --output=$CLI_TARGET_EXECUTABLE
46
+ #tebako press --Ruby=3.3.4 --prefix=$tebako_root --root=$CLI_ROOT --entry-point=$CLI_ENTRY_SCRIPT --output=$CLI_TARGET_EXECUTABLE
47
+ exit 0
48
+ ;;
49
+ Linux)
50
+ work_dir=/mnt/w
51
+ tebako press --root=$work_dir --entry-point=ascli --output=$work_dir/ascli.exe --Ruby=3.3.3
52
+ tebako_prefix="podman run -it --rm -v $PWD:$work_dir ghcr.io/tamatebako/tebako-ubuntu-20.04:0.8.6"
53
+ tebako_opts=--patchelf
54
+ ;;
55
+ *)
56
+ echo "This OS is not supported." >&2
57
+ exit 1
58
+ ;;
59
+ esac
60
+ command $tebako_command $tebako_args
61
+ else
62
+ # https://github.com/you54f/ruby-packer
63
+ # https://github.com/YOU54F/ruby-packer/releases
64
+ set -e
65
+ FOLDER="$(dirname $0)/../tmp"
66
+ RUBYC="$FOLDER/rubyc"
67
+ if test ! -e "$RUBYC"; then
68
+ mkdir -p "$FOLDER"
69
+ case $(uname -sm|tr ' ' -) in
70
+ Darwin-arm64)
71
+ curl -L https://github.com/YOU54F/ruby-packer/releases/download/rel-20230812/rubyc-Darwin-arm64.tar.gz | tar -xz -C "$FOLDER"
72
+ mv "$FOLDER/rubyc-Darwin-arm64" "$RUBYC"
73
+ ;;
74
+ Linux-x86_64)
75
+ curl -L https://github.com/YOU54F/ruby-packer/releases/download/rel-20230812/rubyc-Linux-x86_64.tar.gz | tar -xz -C "$FOLDER"
76
+ mv "$FOLDER/rubyc-Linux-x86_64" "$RUBYC"
77
+ ;;
78
+ *)
79
+ echo "This architecture is not supported." >&2
80
+ exit 1
81
+ ;;
82
+ esac
83
+ fi
84
+ exec "$RUBYC" -o "$CLI_TARGET_EXECUTABLE" "$CLI_ENTRY_SCRIPT"
85
+ fi
@@ -38,6 +38,8 @@ module Aspera
38
38
  end.map{|file|file[0..(-1 - RUBY_EXT.length)].to_sym}
39
39
  end
40
40
  end
41
+
42
+ # Wait for all sessions to terminate and return the status of each session
41
43
  def wait_for_completion
42
44
  # list of: :success or "error message string"
43
45
  statuses = wait_for_transfers_completion