Commit graph

1340 commits

Author SHA1 Message Date
Jiahao XU
1d139324c7
Rewrite untar: Takes a filter fn instead of array
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:35:51 +10:00
Félix Saparelli
1b39a7c86e
Merge pull request #172 from NobodyXu/refactor/AsyncExtracter 2022-06-10 18:26:06 +12:00
Jiahao XU
a681f3a156
Add debug! logging to untar
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 16:18:01 +10:00
Jiahao XU
fb5f61559b
Fix use of download_and_extract in find_crate_cratesio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 15:50:56 +10:00
Jiahao XU
d2e688c4c2
Fix untar when desired_outputs is not None
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 15:49:54 +10:00
Jiahao XU
32ad530329
Rm use of AutoAbortJoinHandle in AsyncExtracter
Since there is no way to abort a blocking thread, using
`AutoAbortJoinHandle` does not add any value.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 13:54:43 +10:00
Jiahao XU
1c3a672108
Rm scopeguard creatd for mpsc::Receiver
Since `Receiver` always closes on drop, there is no need to call
`Receiver::close`, which is there so that you can close the mpsc channel
without dropping `Receiver`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-10 13:52:11 +10:00
Félix Saparelli
29b28a4f8f
Merge pull request #168 from NobodyXu/feature/avoid-oom 2022-06-10 01:55:22 +12:00
Jiahao XU
cadf045d0a
Refactor: Abstract away AsyncExtracter by new fn
`extract_archive_stream`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 22:29:33 +10:00
Jiahao XU
00242a40c6
Update doc for AsyncExtracter::new
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 22:22:39 +10:00
Jiahao XU
8a812c8d22
Rename AsyncExtracter::write to feed
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 22:09:46 +10:00
Jiahao XU
432376224f
Update doc of AsyncExtracter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 22:09:02 +10:00
Jiahao XU
945687c281
Rename AsyncFileWriter to AsyncExtracter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 22:00:00 +10:00
Jiahao XU
e62775a9ec
Add more doc for AsyncFileWriter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 21:34:07 +10:00
Jiahao XU
5ba8b07bcb
Rm helpers::extract
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 14:52:38 +10:00
Jiahao XU
728d1fd6dd
Rm unused param pkg_path in install_from_package
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 14:47:43 +10:00
Jiahao XU
1879a719e4
Rm fn helpers::download
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 14:47:15 +10:00
Jiahao XU
c9b0d45a24
Use download_and_extract in fetchers
to improve efficiency by avoiding disk io (except for `PkgFmt::Zip`
and `PkgFmt::Bin`) and run the compresser in parallel to the downloader.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 14:46:00 +10:00
Jiahao XU
b6bfd40c3a
Use download_and_extract in fetch_crate_cratesio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 14:12:44 +10:00
Jiahao XU
72983e4113
Use untar in extract_compressed_from_readable
So that we can specify the files we want to extract to avoid io and save
disk usage.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 13:26:47 +10:00
Jiahao XU
be5e8616a2
Impl new fn helpers::extracter::untar
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 13:15:23 +10:00
Jiahao XU
cc13a23b07
Mark all internal types & fn as pub(crate)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 12:58:39 +10:00
Félix Saparelli
9ac40bb943
Merge pull request #166 from NobodyXu/optimize/quickinstall-report 2022-06-09 09:38:58 +12:00
Félix Saparelli
d0fed45ab5
Merge pull request #169 from NobodyXu/add-ci 2022-06-09 09:38:22 +12:00
Jiahao XU
951dacd03d
Fix cache key used in workflow "ci"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 02:00:38 +10:00
Jiahao XU
14823fbae7
Fix test::parse_meta in lib.rs
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:53:24 +10:00
Jiahao XU
c9bd741c9b
Add new workflow ci
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:53:10 +10:00
Jiahao XU
1c40848f51
Rm ci.yml
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:52:30 +10:00
Jiahao XU
4b6b3e667c
Fix syntax err in workflow "ci"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:48:42 +10:00
Jiahao XU
2ea03f6b29
Add new workflow "ci" to run cargo-test
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:44:31 +10:00
Jiahao XU
441e004ef1
Fix test::parse_meta in lib.rs
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:42:13 +10:00
Jiahao XU
784d1f0bf6
Impl new fn helpers::download_and_extract
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:32:38 +10:00
Jiahao XU
c3b5cb11c2
Support for any PkgFmt in AsyncFileWriter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:20:37 +10:00
Jiahao XU
58c775a648
Rename mod receiver_as_readable to readable_rx
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:02:53 +10:00
Jiahao XU
59544e8b55
Use BinstallError in AsyncFileWriter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-09 01:01:37 +10:00
Jiahao XU
f211788052
Impl ReadableRx in mod receiver_as_readable
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 23:04:14 +10:00
Jiahao XU
6bc04340b6
Impl extract_compressed_from_readable and unzip
in new mod `extracter`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 22:46:20 +10:00
Jiahao XU
894f9b49f9
Simplify AsyncFileWriter::new: Ret Self
instead of `io::Result<Self>`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 22:29:04 +10:00
Jiahao XU
911c52d8e1
Auto remove file in AsyncFileWriter
unless done is called.

Also moves creation of the dir/file into the blocking thread to avoid
blocking.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 22:27:19 +10:00
Jiahao XU
5d70f61317
Refactor: Extract AutoAbortJoinHandle
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 21:46:32 +10:00
Jiahao XU
358bea5c6d
Refactor: Extract AsyncFileWriter
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 21:43:09 +10:00
Jiahao XU
6aced2ca9b
Disable feature "macros" of dep tokio
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 21:38:44 +10:00
Jiahao XU
e584b99240
Simplify AsyncFileWriter::write by closing rx on err
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 21:38:05 +10:00
Jiahao XU
d9bcca8b78
Impl AutoAbortJoinHandle::new & make its field private
plus change all its users to use its new APIs.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:53:49 +10:00
Jiahao XU
f41391a53c
Impl Future for AutoAbortJoinHandle
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:51:59 +10:00
Jiahao XU
52210d1a8c
Impl Deref{Mut} for AutoAbortJoinHandle
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:48:31 +10:00
Jiahao XU
d6a372a160
Use AutoAbortJoinHandle in AsyncFileWriter
to cancel the task on failure.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:46:00 +10:00
Jiahao XU
12931fc024
Refactor: Mv AutoAbortJoinHandle into helpers
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:44:20 +10:00
Jiahao XU
6367bfc1e3
Fix infinite block in AsyncFileWriter::write
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:42:22 +10:00
Jiahao XU
90186f0b15
Update Cargo.lock
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-06-08 20:40:02 +10:00