Skip to content

Commit 51705a2

Browse files
reivilibresandhose
authored andcommitted
Add progress bars to syn2mas
1 parent b17014d commit 51705a2

File tree

8 files changed

+275
-34
lines changed

8 files changed

+275
-34
lines changed

Cargo.lock

Lines changed: 67 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,10 @@ version = "0.1.41"
357357
[workspace.dependencies.tracing-subscriber]
358358
version = "0.3.19"
359359

360+
# Progress bars
361+
[workspace.dependencies.tracing-indicatif]
362+
version = "0.3.9"
363+
360364
# OpenTelemetry
361365
[workspace.dependencies.opentelemetry]
362366
version = "0.27.1"

crates/cli/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ tracing.workspace = true
4848
tracing-appender = "0.2.3"
4949
tracing-subscriber = { workspace = true, features = ["env-filter"] }
5050
tracing-opentelemetry.workspace = true
51+
tracing-indicatif.workspace = true
5152
opentelemetry.workspace = true
5253
opentelemetry-http.workspace = true
5354
opentelemetry-jaeger-propagator.workspace = true

crates/cli/src/commands/syn2mas.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -216,33 +216,29 @@ impl Options {
216216

217217
// TODO how should we handle warnings at this stage?
218218

219-
let mut reader = SynapseReader::new(&mut syn_conn, true).await?;
219+
let reader = SynapseReader::new(&mut syn_conn, true).await?;
220220
let mut writer_mas_connections = Vec::with_capacity(NUM_WRITER_CONNECTIONS);
221221
for _ in 0..NUM_WRITER_CONNECTIONS {
222222
writer_mas_connections.push(database_connection_from_config(&config).await?);
223223
}
224-
let mut writer = MasWriter::new(mas_connection, writer_mas_connections).await?;
224+
let writer = MasWriter::new(mas_connection, writer_mas_connections).await?;
225225

226226
let clock = SystemClock::default();
227227
// TODO is this rng ok?
228228
#[allow(clippy::disallowed_methods)]
229229
let mut rng = thread_rng();
230230

231-
// TODO progress reporting
232231
let mas_matrix = MatrixConfig::extract(figment)?;
233232
syn2mas::migrate(
234-
&mut reader,
235-
&mut writer,
233+
reader,
234+
writer,
236235
&mas_matrix.homeserver,
237236
&clock,
238237
&mut rng,
239238
&provider_id_mappings,
240239
)
241240
.await?;
242241

243-
reader.finish().await?;
244-
writer.finish().await?;
245-
246242
Ok(ExitCode::SUCCESS)
247243
}
248244
}

crates/cli/src/main.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ use anyhow::Context;
1212
use clap::Parser;
1313
use mas_config::{ConfigurationSection, TelemetryConfig};
1414
use sentry_tracing::EventFilter;
15+
use tracing_indicatif::{
16+
filter::{hide_indicatif_span_fields, IndicatifFilter},
17+
IndicatifLayer,
18+
};
1519
use tracing_subscriber::{
16-
filter::LevelFilter, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Layer, Registry,
20+
filter::LevelFilter, fmt::format::DefaultFields, layer::SubscriberExt, util::SubscriberInitExt,
21+
EnvFilter, Layer, Registry,
1722
};
1823

1924
mod app_state;
@@ -131,11 +136,17 @@ async fn try_main() -> anyhow::Result<ExitCode> {
131136
.with_filter(LevelFilter::INFO)
132137
});
133138

139+
// Set up progress bars, used in syn2mas for example
140+
let progress_layer = IndicatifLayer::new()
141+
.with_span_field_formatter(hide_indicatif_span_fields(DefaultFields::new()))
142+
.with_filter(IndicatifFilter::new(false));
143+
134144
let subscriber = Registry::default()
135145
.with(sentry_layer)
136146
.with(telemetry_layer)
137147
.with(filter_layer)
138-
.with(fmt_layer);
148+
.with(fmt_layer)
149+
.with(progress_layer);
139150
subscriber
140151
.try_init()
141152
.context("could not initialize logging")?;

crates/syn2mas/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ sqlx.workspace = true
2121
chrono.workspace = true
2222
compact_str.workspace = true
2323
tracing.workspace = true
24+
tracing-indicatif.workspace = true
2425
futures-util = "0.3.30"
2526

2627
rand.workspace = true

0 commit comments

Comments
 (0)