Skip to content

Commit 398ad9b

Browse files
committed
refactor: remove duplicate code
1 parent eeea77a commit 398ad9b

4 files changed

Lines changed: 18 additions & 18 deletions

File tree

src/app.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,28 @@ use torrust_server_lib::registar::Registar;
2828
use torrust_tracker_configuration::Configuration;
2929
use tracing::instrument;
3030

31+
use crate::bootstrap;
3132
use crate::bootstrap::jobs::{health_check_api, http_tracker, torrent_cleanup, tracker_apis, udp_tracker};
3233
use crate::container::AppContainer;
3334

35+
pub async fn run() -> (Arc<AppContainer>, Vec<JoinHandle<()>>, Registar) {
36+
let (config, app_container) = bootstrap::app::setup();
37+
38+
let app_container = Arc::new(app_container);
39+
40+
let (jobs, registar) = start(&config, &app_container).await;
41+
42+
(app_container, jobs, registar)
43+
}
44+
3445
/// # Panics
3546
///
3647
/// Will panic if:
3748
///
3849
/// - Can't retrieve tracker keys from database.
3950
/// - Can't load whitelist from database.
4051
#[instrument(skip(config, app_container))]
41-
pub async fn start(config: &Configuration, app_container: &Arc<AppContainer>) -> Vec<JoinHandle<()>> {
52+
pub async fn start(config: &Configuration, app_container: &Arc<AppContainer>) -> (Vec<JoinHandle<()>>, Registar) {
4253
if config.http_api.is_none()
4354
&& (config.udp_trackers.is_none() || config.udp_trackers.as_ref().map_or(true, std::vec::Vec::is_empty))
4455
&& (config.http_trackers.is_none() || config.http_trackers.as_ref().map_or(true, std::vec::Vec::is_empty))
@@ -143,5 +154,5 @@ pub async fn start(config: &Configuration, app_container: &Arc<AppContainer>) ->
143154
// Start Health Check API
144155
jobs.push(health_check_api::start_job(&config.health_check_api, registar.entries()).await);
145156

146-
jobs
157+
(jobs, registar)
147158
}

src/console/profiling.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ pub async fn run() {
184184

185185
let app_container = Arc::new(app_container);
186186

187-
let jobs = app::start(&config, &app_container).await;
187+
let (jobs, _registar) = app::start(&config, &app_container).await;
188188

189189
// Run the tracker for a fixed duration
190190
let run_duration = sleep(Duration::from_secs(duration_secs));

src/main.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
1-
use std::sync::Arc;
2-
3-
use torrust_tracker_lib::{app, bootstrap};
1+
use torrust_tracker_lib::app;
42

53
#[tokio::main]
64
async fn main() {
7-
let (config, app_container) = bootstrap::app::setup();
8-
9-
let app_container = Arc::new(app_container);
10-
11-
let jobs = app::start(&config, &app_container).await;
5+
let (_app_container, jobs, _registar) = app::run().await;
126

137
// handle the signals
148
tokio::select! {

tests/servers/api/contract/stats/mod.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use std::env;
22
use std::str::FromStr as _;
3-
use std::sync::Arc;
43

54
use bittorrent_primitives::info_hash::InfoHash;
65
use bittorrent_tracker_client::http::client::requests::announce::QueryBuilder;
@@ -10,7 +9,7 @@ use serde::Deserialize;
109
use tokio::time::Duration;
1110
use torrust_rest_tracker_api_client::connection_info::{ConnectionInfo, Origin};
1211
use torrust_rest_tracker_api_client::v1::client::Client as TrackerApiClient;
13-
use torrust_tracker_lib::{app, bootstrap};
12+
use torrust_tracker_lib::app;
1413

1514
#[tokio::test]
1615
async fn the_stats_api_endpoint_should_return_the_global_stats() {
@@ -48,11 +47,7 @@ async fn the_stats_api_endpoint_should_return_the_global_stats() {
4847

4948
env::set_var("TORRUST_TRACKER_CONFIG_TOML", config_with_two_http_trackers);
5049

51-
let (config, app_container) = bootstrap::app::setup();
52-
53-
let app_container = Arc::new(app_container);
54-
55-
let _jobs = app::start(&config, &app_container).await;
50+
let (_app_container, _jobs, _registar) = app::run().await;
5651

5752
announce_to_tracker("http://127.0.0.1:7272").await;
5853
announce_to_tracker("http://127.0.0.1:7373").await;

0 commit comments

Comments
 (0)