morpheus_bootloader/tui/distro_downloader/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Distro Downloader Module
//!
//! Provides a TUI for browsing, downloading, and managing Linux distribution ISOs.
//! Downloads are stored using chunked FAT32 storage (bypassing 4GB limit).
//! Integrates ISO management for viewing, deleting, and booting downloaded ISOs.
//!
//! # Architecture
//!
//! ```text
//! ┌─────────────────────────────────────────────────────────────┐
//! │                    DistroDownloader                         │
//! ├─────────────────────────────────────────────────────────────┤
//! │  ┌─────────────┐  ┌──────────────┐  ┌───────────────────┐  │
//! │  │   Catalog   │  │    State     │  │   IsoStorage      │  │
//! │  │  (static)   │  │ (UI + DL)    │  │   (chunked)       │  │
//! │  └─────────────┘  └──────────────┘  └───────────────────┘  │
//! │         │                │                    │            │
//! │         ▼                ▼                    ▼            │
//! │  ┌─────────────────────────────────────────────────────┐   │
//! │  │     UI Event Loop (Browse / Manage / Download)      │   │
//! │  └─────────────────────────────────────────────────────┘   │
//! └─────────────────────────────────────────────────────────────┘
//! ```

pub mod catalog;
pub mod commit_download;
pub mod manifest_io;
pub mod network_check; // Network connectivity verification (deprecated - see commit_download)
pub mod renderer;
pub mod state;
pub mod ui; // Post-EBS download flow

pub use catalog::{get_by_category, DistroCategory, DistroEntry, CATEGORIES, DISTRO_CATALOG};
pub use commit_download::{commit_to_download, CommitResult, DownloadCommitConfig};
pub use manifest_io::{
    delete_manifest, load_manifests_from_esp, persist_manifest, ManifestIoError,
};
pub use state::{DownloadState, DownloadStatus, UiMode, UiState};
pub use ui::{DistroDownloader, ManageAction};