• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

getdozer / dozer / 5854473894

pending completion
5854473894

Pull #1848

github

supergi01
fixed clippy error in downloader.rs
Pull Request #1848: feat: dowload and use dozer-live ui

110 of 110 new or added lines in 2 files covered. (100.0%)

45596 of 62783 relevant lines covered (72.62%)

39052.55 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/dozer-cli/src/live/mod.rs
1
mod downloader;
2
mod errors;
3
mod server;
4
mod state;
5
mod watcher;
6
use std::sync::Arc;
7
mod helper;
8
use self::state::LiveState;
9
use crate::shutdown::ShutdownReceiver;
10
use dozer_types::{grpc_types::live::LiveResponse, log::info};
11
pub use errors::LiveError;
12
use futures::stream::{AbortHandle, Abortable};
13

14
const WEB_PORT: u16 = 3000;
15
pub fn start_live_server(
×
16
    runtime: Arc<tokio::runtime::Runtime>,
×
17
    shutdown: ShutdownReceiver,
×
18
) -> Result<(), LiveError> {
×
19
    let (sender, receiver) = tokio::sync::broadcast::channel::<LiveResponse>(100);
×
20
    let state = Arc::new(LiveState::new());
×
21

×
22
    state.build()?;
×
23

×
24
    runtime.block_on(downloader::fetch_latest_dozer_explorer_code())?;
×
25

×
26
    let react_app_server = downloader::start_react_app().map_err(LiveError::CannotStartUiServer)?;
×
27
    runtime.spawn(react_app_server);
×
28

×
29
    let state2 = state.clone();
×
30

×
31
    let browser_url = format!("http://localhost:{}", WEB_PORT);
×
32

×
33
    if webbrowser::open(&browser_url).is_err() {
×
34
        info!("Failed to open browser. Connecto");
×
35
    }
×
36

×
37
    info!("Starting live server");
×
38

×
39
    let rshudown = shutdown.clone();
×
40
    runtime.spawn(async {
×
41
        let (abort_handle, abort_registration) = AbortHandle::new_pair();
×
42
        tokio::spawn(async move {
×
43
            rshudown.create_shutdown_future().await;
×
44
            abort_handle.abort();
×
45
        });
×
46
        let res = match Abortable::new(server::serve(receiver, state2), abort_registration).await {
×
47
            Ok(result) => result.map_err(LiveError::Transport),
×
48
            Err(_) => Ok(()),
×
49
        };
50
        res.unwrap();
×
51
    });
×
52

×
53
    watcher::watch(sender, state.clone(), shutdown)?;
×
54

55
    Ok(())
×
56
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc