@anysphere/file-service 0.0.0-d50aa568 → 0.0.0-da91e36e
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.
- package/package.json +8 -8
- package/src/lib.rs +35 -21
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anysphere/file-service",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-da91e36e",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"napi": {
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"version": "napi version"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"@anysphere/file-service-win32-x64-msvc": "0.0.0-
|
|
40
|
-
"@anysphere/file-service-darwin-x64": "0.0.0-
|
|
41
|
-
"@anysphere/file-service-linux-x64-gnu": "0.0.0-
|
|
42
|
-
"@anysphere/file-service-darwin-arm64": "0.0.0-
|
|
43
|
-
"@anysphere/file-service-win32-arm64-msvc": "0.0.0-
|
|
44
|
-
"@anysphere/file-service-darwin-universal": "0.0.0-
|
|
45
|
-
"@anysphere/file-service-linux-arm64-gnu": "0.0.0-
|
|
39
|
+
"@anysphere/file-service-win32-x64-msvc": "0.0.0-da91e36e",
|
|
40
|
+
"@anysphere/file-service-darwin-x64": "0.0.0-da91e36e",
|
|
41
|
+
"@anysphere/file-service-linux-x64-gnu": "0.0.0-da91e36e",
|
|
42
|
+
"@anysphere/file-service-darwin-arm64": "0.0.0-da91e36e",
|
|
43
|
+
"@anysphere/file-service-win32-arm64-msvc": "0.0.0-da91e36e",
|
|
44
|
+
"@anysphere/file-service-darwin-universal": "0.0.0-da91e36e",
|
|
45
|
+
"@anysphere/file-service-linux-arm64-gnu": "0.0.0-da91e36e"
|
|
46
46
|
}
|
|
47
47
|
}
|
package/src/lib.rs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
pub mod file_utils;
|
|
5
5
|
pub mod merkle_tree;
|
|
6
6
|
|
|
7
|
-
use std::{
|
|
7
|
+
use std::{collections::HashSet, vec};
|
|
8
8
|
|
|
9
9
|
use anyhow::Context;
|
|
10
10
|
use merkle_tree::{LocalConstruction, MerkleTree};
|
|
@@ -19,22 +19,27 @@ extern crate napi_derive;
|
|
|
19
19
|
pub struct MerkleClient {
|
|
20
20
|
tree: MerkleTree,
|
|
21
21
|
absolute_root_directory: String,
|
|
22
|
-
_guard: tracing_appender::non_blocking::WorkerGuard
|
|
22
|
+
_guard: Option<tracing_appender::non_blocking::WorkerGuard>,
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
pub fn init_logger() -> tracing_appender::non_blocking::WorkerGuard {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
pub fn init_logger() -> Option<tracing_appender::non_blocking::WorkerGuard> {
|
|
26
|
+
#[cfg(feature = "debugfile")]
|
|
27
|
+
let _guard = {
|
|
28
|
+
let file_appender =
|
|
29
|
+
RollingFileAppender::new(Rotation::NEVER, "./", "rust_log.txt");
|
|
30
|
+
let (non_blocking, _guard) = tracing_appender::non_blocking(file_appender);
|
|
31
|
+
let subscriber = fmt::Subscriber::builder()
|
|
32
|
+
.with_max_level(Level::TRACE)
|
|
33
|
+
.with_writer(non_blocking)
|
|
34
|
+
.with_ansi(false)
|
|
35
|
+
.with_line_number(true)
|
|
36
|
+
.finish();
|
|
37
|
+
|
|
38
|
+
let _ = tracing::subscriber::set_global_default(subscriber);
|
|
39
|
+
_guard
|
|
40
|
+
};
|
|
41
|
+
#[cfg(not(feature = "debugfile"))]
|
|
42
|
+
let _guard = { None };
|
|
38
43
|
_guard
|
|
39
44
|
}
|
|
40
45
|
|
|
@@ -62,13 +67,19 @@ impl MerkleClient {
|
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
#[napi]
|
|
65
|
-
pub async unsafe fn init(
|
|
70
|
+
pub async unsafe fn init(
|
|
71
|
+
&mut self,
|
|
72
|
+
git_ignored_files: Vec<String>,
|
|
73
|
+
is_git_repo: bool,
|
|
74
|
+
) -> Result<(), napi::Error> {
|
|
66
75
|
// 1. compute the merkle tree
|
|
67
76
|
// 2. update the backend
|
|
68
77
|
// 3. sync with the remote
|
|
69
78
|
info!("Merkle tree compute started!");
|
|
70
79
|
unsafe {
|
|
71
|
-
self
|
|
80
|
+
self
|
|
81
|
+
.compute_merkle_tree(git_ignored_files, is_git_repo)
|
|
82
|
+
.await?;
|
|
72
83
|
}
|
|
73
84
|
|
|
74
85
|
Ok(())
|
|
@@ -82,14 +93,17 @@ impl MerkleClient {
|
|
|
82
93
|
pub async unsafe fn compute_merkle_tree(
|
|
83
94
|
&mut self,
|
|
84
95
|
git_ignored_files: Vec<String>,
|
|
85
|
-
is_git_repo: bool
|
|
96
|
+
is_git_repo: bool,
|
|
86
97
|
) -> Result<(), napi::Error> {
|
|
87
98
|
// make the git ignored files into a hash set
|
|
88
99
|
let git_ignored_set = HashSet::from_iter(git_ignored_files.into_iter());
|
|
89
100
|
|
|
90
|
-
let t =
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
let t = MerkleTree::construct_merkle_tree(
|
|
102
|
+
self.absolute_root_directory.clone(),
|
|
103
|
+
git_ignored_set,
|
|
104
|
+
is_git_repo,
|
|
105
|
+
)
|
|
106
|
+
.await;
|
|
93
107
|
|
|
94
108
|
match t {
|
|
95
109
|
Ok(tree) => {
|