mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-06-16 23:56:37 +00:00

* Add optional dependency tracing to fs-lock Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Add optional logging to FileLock::drop Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Enable fs-lock/tracing in binstalk-manifest Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Add FileLock::set_file_path Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Update create_if_not_exist to return FileLock on successs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Update create_if_not_exist usage in mod binstall_crates_v1 Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Simplify create_if_not_exist Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Refactor mod crates_manifests to use create_if_not_exist Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Set file path for FileLock Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Set file path for file lock in mod cargo_config Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix fs-lock impl Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Import Path in fs-lock lib.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix fs-lock lib.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix fs-lock lib.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix typo in crates_manifests.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix calling create_if_not_exist in crates_manifests.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fox fmt crates_manifests.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix fmt in lib.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --------- Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
15 lines
428 B
Rust
15 lines
428 B
Rust
use std::{fs, io, path::Path};
|
|
|
|
use fs_lock::FileLock;
|
|
|
|
/// Return exclusively locked file that is readable and writable.
|
|
pub(crate) fn create_if_not_exist(path: &Path) -> io::Result<FileLock> {
|
|
fs::File::options()
|
|
.read(true)
|
|
.write(true)
|
|
.create(true)
|
|
.truncate(false)
|
|
.open(path)
|
|
.and_then(FileLock::new_exclusive)
|
|
.map(|file_lock| file_lock.set_file_path(path))
|
|
}
|