Commit graph

668 commits

Author SHA1 Message Date
Jiahao XU
3dbec7718d
Fix dep installation in workflow "unit-tests"
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU
1499f5c201
Install lzma, bzip & zstd in integration test CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU
b22a55f08f
Install lzma, bzip and zstd lib in workflow unit-tests
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:38 +10:00
Jiahao XU
997d4e4e9d
Run workflow unit-tests with feature pkg-config
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:37 +10:00
Jiahao XU
6c09cb05c9
Add new feature pkg-config: Enable linking with sys packages
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:37 +10:00
Jiahao XU
818f4da577
Add new feature static that is enabled by default
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 22:41:34 +10:00
Félix Saparelli
3889d122a7
Releng improvements (#224) 2022-07-24 00:39:54 +12:00
Jiahao XU
1768392413
Merge pull request #228 from NobodyXu/fix/skip-on-custom-install
Fix updating metafiles: Skip on custom install path
2022-07-23 19:57:58 +10:00
Jiahao XU
5367b366d1
Use home::cargo_home in helpers::cargo_home
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:17:47 +10:00
Jiahao XU
ad2d393be7
Add back dep home v0.5.3
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:17:26 +10:00
Jiahao XU
b4d2e9b99c
Fix get_install_path where cargo_home succeeds
The returned path must join with `"bin"`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:16:23 +10:00
Jiahao XU
49f665d680
Fix confusing comment in helpers::cargo_home
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:10:15 +10:00
Jiahao XU
3838219d89
Rm dep home
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:09:06 +10:00
Jiahao XU
5bf2b4e45d
Fix helpers::cargo_home: home::cargo_home is buggy
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 19:08:29 +10:00
Jiahao XU
3c09cfb196
Fix ci-scripts/run_tests_unix.sh: unset CARGO_HOME
and `CARGO_INSTALL_ROOT`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 18:51:50 +10:00
Jiahao XU
5ea66574c3
Mod get_install_path to ret Arc<Path> instead of PathBuf
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 18:37:59 +10:00
Jiahao XU
5620810c55
Simplify get_install_path using cargo_home
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 18:36:01 +10:00
Jiahao XU
79476e490b
Fix custom_install_path detection
Installing to `CARGO_INSTALL_ROOT` or the local executable dir should be
considered a custom installation path.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-23 18:33:30 +10:00
Jiahao XU
45ba1de441
Merge pull request #227 from NobodyXu/fix/flock
Fix updating metafiles: Use file lock to fix race condition
2022-07-23 12:23:23 +10:00
Jiahao XU
7bdc720a9a
Fix updating metafiles: Skip on custom install path
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:59:02 +10:00
Jiahao XU
6ce48419b6
Fix CratesToml::write_to_{writer, file}
Make them consistent with `Crates2Json::write_to_{writer, file}`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:55:44 +10:00
Jiahao XU
0a753f3e4b
Fix Crates2Json::append_to_path: Use file lock
to fix race condition.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:50:58 +10:00
Jiahao XU
d432d54c28
Add new fn Crates2Json::write_to_file
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:48:54 +10:00
Jiahao XU
1766b92547
Add new fn Crates2Json::write_to_writer
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:45:55 +10:00
Jiahao XU
15e2213225
Add new fn Crates2Json::load_from_reader
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:44:28 +10:00
Jiahao XU
d9fe7bfaf4
Fix bug in helpers::create_if_not_exist
Returned `File` must be both readable and writable.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:40:00 +10:00
Jiahao XU
09d210bf62
Simplify helpers::create_if_not_exist implementation
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:32:45 +10:00
Jiahao XU
d7bd96660e
Fix CratesToml::append_to_path: Lock file to avoid race condition
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:22:31 +10:00
Jiahao XU
e1b6fb85aa
Add new fn CratesToml::write_to_file
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:22:18 +10:00
Jiahao XU
05115641ff
Add new fn helpers::create_if_not_exist
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:12:16 +10:00
Jiahao XU
1cfdd3b8bc
Merge pull request #225 from NobodyXu/fix/tempdir
Fix: Create `temp_dir` in `install_path`
2022-07-22 21:55:38 +10:00
Jiahao XU
7311f77f29
Impl new fn CratesToml::write_to_writer
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 20:19:04 +10:00
Jiahao XU
565b404dce
Impl fn CratesToml::load_from_reader
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 20:15:03 +10:00
Jiahao XU
9e45ba1032
Impl new RAII type helpers::flock::FileLock
that locks a file exclusive or shared

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:48:37 +10:00
Jiahao XU
751cf47716
Add new dep fs4 v0.6.2
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:42:33 +10:00
Jiahao XU
95c30122e9
Rm unused import tempfile::TempDir in main.rs
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:17:23 +10:00
Jiahao XU
fb35863faa
Create temp_dir in install_path
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:17:09 +10:00
Jiahao XU
d21dde4889
Merge pull request #226 from NobodyXu/fix/metafile-update
Fix race condition when updating metafile
2022-07-22 19:15:36 +10:00
Jiahao XU
92f4d0af95
Fix metafile updating: Update them in entry only
to avoid race condition.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:58:29 +10:00
Jiahao XU
488e7b8492
Update CratesToml::append to accept iter
intead of one single pair of value.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:57:51 +10:00
Jiahao XU
739b3ee247
Update Crates2Json::append to accept iter
instead of one single pair of value.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:57:25 +10:00
Jiahao XU
6964eee5d1
Merge pull request #223 from NobodyXu/fix/join-err
Fix: join err handling, unify it using `BinstallError`
2022-07-22 11:29:21 +10:00
Jiahao XU
adbc587f3b
Merge pull request #222 from NobodyXu/refactor
Refactor: Make appending to metafiles easier and fix their err handling
2022-07-22 11:29:12 +10:00
Jiahao XU
4716389a52
Merge pull request #221 from NobodyXu/optimize
Minor Optimization
2022-07-22 11:27:13 +10:00
Jiahao XU
32b98f0c5a
Fix Deserialize for CrateVersionSource
Use `Cow::<'_, str>::deserialize` to ensure that it would still work
even if it contains escaped characters.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:43:40 +10:00
Jiahao XU
a3fcc298ab
Avoid CrateVersionSource::clone for insertion in metafiles
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:38:44 +10:00
Jiahao XU
de9404feda
Optimize Crates2Json: Use String as key
to avoid cost of deserializing (`CrateVersionSource::from_str`).

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:37:27 +10:00
Jiahao XU
96aaca1cc6
Optimize CratesToml: Use String as key
to avoid cost of deserializing (`CrateVersionSource::from_str`).

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:36:22 +10:00
Jiahao XU
9d9a31bef3
Optimize Deserialize impl for CrateVersionSource
Use `<&str>::deserialize` instead of `String::deserialize` to avoid
intermediate `String`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:23:58 +10:00
Jiahao XU
c2ce265afa
Optimize Crates2Json::write_to_path: Use to_writer
which avoids allocating a `Vec<u8>` just to hold serialized data.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 22:18:08 +10:00