swarm repositories / source
aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/memview/src/linux/app.rs (renamed from crates/memview/src/app.rs)16
-rw-r--r--crates/memview/src/linux/app/rows.rs (renamed from crates/memview/src/app/rows.rs)0
-rw-r--r--crates/memview/src/linux/app/tests.rs (renamed from crates/memview/src/app/tests.rs)4
-rw-r--r--crates/memview/src/linux/app/worker.rs (renamed from crates/memview/src/app/worker.rs)4
-rw-r--r--crates/memview/src/linux/mod.rs (renamed from crates/memview/src/linux.rs)14
-rw-r--r--crates/memview/src/linux/model.rs (renamed from crates/memview/src/model.rs)0
-rw-r--r--crates/memview/src/linux/nav.rs (renamed from crates/memview/src/nav.rs)0
-rw-r--r--crates/memview/src/linux/probe.rs (renamed from crates/memview/src/probe.rs)2
-rw-r--r--crates/memview/src/linux/search.rs (renamed from crates/memview/src/search.rs)2
-rw-r--r--crates/memview/src/linux/ui.rs (renamed from crates/memview/src/ui.rs)32
-rw-r--r--crates/memview/src/main.rs30
-rw-r--r--crates/memview/src/unsupported.rs8
12 files changed, 52 insertions, 60 deletions
diff --git a/crates/memview/src/app.rs b/crates/memview/src/linux/app.rs
index f52afa5..9ace856 100644
--- a/crates/memview/src/app.rs
+++ b/crates/memview/src/linux/app.rs
@@ -1,10 +1,10 @@
-use crate::model::{
+use super::model::{
Bytes, LedgerState, Meminfo, Metric, ObjectKind, ObjectUsage, Pid, ProcessNode, SharedObject,
Snapshot, TmpfsMount, TmpfsNode, TmpfsNodeKind,
};
-pub use crate::nav::{Hotkey, HotkeySections, Tab};
-use crate::probe;
-use crate::search::{Search, SearchDraft, SearchRole, SearchSummary};
+pub use super::nav::{Hotkey, HotkeySections, Tab};
+use super::probe;
+use super::search::{Search, SearchDraft, SearchRole, SearchSummary};
use color_eyre::eyre::Result;
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers, MouseEvent, MouseEventKind};
use rustix::fd::OwnedFd;
@@ -48,7 +48,7 @@ impl ProcessScope {
}
#[must_use]
- pub fn rollup(self, node: &ProcessNode) -> crate::model::MemoryRollup {
+ pub fn rollup(self, node: &ProcessNode) -> super::model::MemoryRollup {
match self {
Self::SelfOnly => node.rollup,
Self::SelfAndChildren => node.subtree,
@@ -922,7 +922,7 @@ impl App {
#[must_use]
pub fn hotkey_sections(&self) -> HotkeySections {
HotkeySections {
- global: crate::nav::global_hotkeys(),
+ global: super::nav::global_hotkeys(),
pane_title: self.tab.title(),
pane: self.tab.hotkeys(),
}
@@ -1759,8 +1759,8 @@ fn empty_snapshot(meminfo: Meminfo) -> Snapshot {
captured_at: SystemTime::now(),
elapsed: Duration::ZERO,
meminfo,
- overview: crate::model::Overview::default(),
- process_tree: crate::model::ProcessTree::default(),
+ overview: super::model::Overview::default(),
+ process_tree: super::model::ProcessTree::default(),
shared_objects: Vec::new(),
sysv_segments: Vec::new(),
tmpfs_mounts: Vec::new(),
diff --git a/crates/memview/src/app/rows.rs b/crates/memview/src/linux/app/rows.rs
index d6d904d..d6d904d 100644
--- a/crates/memview/src/app/rows.rs
+++ b/crates/memview/src/linux/app/rows.rs
diff --git a/crates/memview/src/app/tests.rs b/crates/memview/src/linux/app/tests.rs
index 1e9f8f8..583863a 100644
--- a/crates/memview/src/app/tests.rs
+++ b/crates/memview/src/linux/app/tests.rs
@@ -59,8 +59,8 @@ fn tmpfs_snapshot(mounts: Vec<TmpfsMount>) -> Snapshot {
captured_at: SystemTime::UNIX_EPOCH,
elapsed: Duration::ZERO,
meminfo: Meminfo::default(),
- overview: crate::model::Overview::default(),
- process_tree: crate::model::ProcessTree::default(),
+ overview: super::super::model::Overview::default(),
+ process_tree: super::super::model::ProcessTree::default(),
shared_objects: Vec::new(),
sysv_segments: Vec::new(),
tmpfs_mounts: mounts,
diff --git a/crates/memview/src/app/worker.rs b/crates/memview/src/linux/app/worker.rs
index 52bbc59..6efdb77 100644
--- a/crates/memview/src/app/worker.rs
+++ b/crates/memview/src/linux/app/worker.rs
@@ -1,5 +1,5 @@
-use crate::model::{Pid, Snapshot};
-use crate::probe;
+use super::super::model::{Pid, Snapshot};
+use super::super::probe;
use color_eyre::eyre::Result;
use std::path::{Path, PathBuf};
use std::sync::mpsc::{self, Receiver, Sender};
diff --git a/crates/memview/src/linux.rs b/crates/memview/src/linux/mod.rs
index 1454329..ee24a3e 100644
--- a/crates/memview/src/linux.rs
+++ b/crates/memview/src/linux/mod.rs
@@ -1,5 +1,11 @@
-use crate::app::{App, WorkerCommand, spawn_worker};
-use crate::ui;
+mod app;
+mod model;
+mod nav;
+mod probe;
+mod search;
+mod ui;
+
+use app::{App, WorkerCommand, spawn_worker};
use clap::Parser;
use color_eyre::eyre::Result;
use crossterm::cursor::{Hide, Show};
@@ -27,7 +33,9 @@ struct Cli {
refresh_ms: u64,
}
-pub fn run() -> Result<()> {
+pub type MainResult = Result<()>;
+
+pub fn run() -> MainResult {
color_eyre::install()?;
let cli = Cli::parse();
let (commands, events) = spawn_worker(Duration::from_millis(cli.refresh_ms));
diff --git a/crates/memview/src/model.rs b/crates/memview/src/linux/model.rs
index a680332..a680332 100644
--- a/crates/memview/src/model.rs
+++ b/crates/memview/src/linux/model.rs
diff --git a/crates/memview/src/nav.rs b/crates/memview/src/linux/nav.rs
index 88e85a9..88e85a9 100644
--- a/crates/memview/src/nav.rs
+++ b/crates/memview/src/linux/nav.rs
diff --git a/crates/memview/src/probe.rs b/crates/memview/src/linux/probe.rs
index 1825ecb..b47a5fa 100644
--- a/crates/memview/src/probe.rs
+++ b/crates/memview/src/linux/probe.rs
@@ -1,4 +1,4 @@
-use crate::model::{
+use super::model::{
Bytes, LedgerState, Meminfo, MeminfoEntry, MemoryRollup, Metric, ObjectConsumer, ObjectKind,
ObjectUsage, Overview, Pid, ProcessNode, ProcessTree, ProcessTreeStats, SharedObject, Snapshot,
SysvSegment, TmpfsMount, TmpfsNode, TmpfsNodeKind,
diff --git a/crates/memview/src/search.rs b/crates/memview/src/linux/search.rs
index 1b31618..6d3d01f 100644
--- a/crates/memview/src/search.rs
+++ b/crates/memview/src/linux/search.rs
@@ -1,4 +1,4 @@
-use crate::model::Bytes;
+use super::model::Bytes;
use regex::Regex;
#[derive(Clone, Debug)]
diff --git a/crates/memview/src/ui.rs b/crates/memview/src/linux/ui.rs
index 1da1e58..8d0b8a2 100644
--- a/crates/memview/src/ui.rs
+++ b/crates/memview/src/linux/ui.rs
@@ -1,6 +1,6 @@
-use crate::app::{App, FlatProcessRow, FlatSharedRow, FlatTmpfsRow, Hotkey, RowFold};
-use crate::model::{Bytes, Meminfo, MeminfoEntry, ObjectUsage, Pid, Snapshot, TmpfsMount};
-use crate::search::SearchRole;
+use super::app::{App, FlatProcessRow, FlatSharedRow, FlatTmpfsRow, Hotkey, RowFold};
+use super::model::{Bytes, Meminfo, MeminfoEntry, ObjectUsage, Pid, Snapshot, TmpfsMount};
+use super::search::SearchRole;
use ratatui::Frame;
use ratatui::layout::{Constraint, Direction, Layout, Rect};
use ratatui::style::{Color, Modifier, Style};
@@ -46,10 +46,10 @@ pub fn render(frame: &mut Frame<'_>, app: &App) {
fn render_body(frame: &mut Frame<'_>, app: &App, snapshot: &Snapshot, area: Rect) {
match app.tab {
- crate::app::Tab::Overview => render_overview(frame, app, snapshot, area),
- crate::app::Tab::Processes => render_processes(frame, app, snapshot, area),
- crate::app::Tab::Tmpfs => render_tmpfs(frame, app, snapshot, area),
- crate::app::Tab::Shared => render_shared(frame, app, snapshot, area),
+ super::app::Tab::Overview => render_overview(frame, app, snapshot, area),
+ super::app::Tab::Processes => render_processes(frame, app, snapshot, area),
+ super::app::Tab::Tmpfs => render_tmpfs(frame, app, snapshot, area),
+ super::app::Tab::Shared => render_shared(frame, app, snapshot, area),
}
}
@@ -64,7 +64,7 @@ fn header(app: &App) -> Paragraph<'static> {
));
spans.push(Span::raw(" "));
for (index, label) in App::tab_labels().into_iter().enumerate() {
- let style = if app.tab == crate::app::Tab::ALL[index] {
+ let style = if app.tab == super::app::Tab::ALL[index] {
Style::default().fg(ACCENT).add_modifier(Modifier::BOLD)
} else {
Style::default().fg(MUTED)
@@ -163,23 +163,23 @@ fn footer(app: &App) -> Paragraph<'static> {
fn pane_footer(app: &App) -> &'static str {
match app.tab {
- crate::app::Tab::Overview => "r refresh overview s lens",
- crate::app::Tab::Processes => {
+ super::app::Tab::Overview => "r refresh overview s lens",
+ super::app::Tab::Processes => {
"j/k/Pg/wheel move gg/G edge Enter fold s sort m mode K SIGTERM r rescan"
}
- crate::app::Tab::Tmpfs => {
+ super::app::Tab::Tmpfs => {
"j/k/Pg/wheel move gg/G edge Enter fold m mode d delete r refresh mount"
}
- crate::app::Tab::Shared => "j/k/Pg/wheel move gg/G edge s sort m mode r rescan",
+ super::app::Tab::Shared => "j/k/Pg/wheel move gg/G edge s sort m mode r rescan",
}
}
fn render_loading(frame: &mut Frame<'_>, app: &App, area: Rect) {
let (title, message) = match app.tab {
- crate::app::Tab::Overview => ("Loading", "Reading kernel memory counters..."),
- crate::app::Tab::Processes => ("Processes", "Capturing process memory snapshot..."),
- crate::app::Tab::Tmpfs => ("Tmpfs", "Scanning tmpfs mounts..."),
- crate::app::Tab::Shared => ("Shared", "Reading shared memory ledgers..."),
+ super::app::Tab::Overview => ("Loading", "Reading kernel memory counters..."),
+ super::app::Tab::Processes => ("Processes", "Capturing process memory snapshot..."),
+ super::app::Tab::Tmpfs => ("Tmpfs", "Scanning tmpfs mounts..."),
+ super::app::Tab::Shared => ("Shared", "Reading shared memory ledgers..."),
};
frame.render_widget(
Paragraph::new(message)
diff --git a/crates/memview/src/main.rs b/crates/memview/src/main.rs
index 64665b7..391733e 100644
--- a/crates/memview/src/main.rs
+++ b/crates/memview/src/main.rs
@@ -1,27 +1,7 @@
-#[cfg(target_os = "linux")]
-mod app;
-#[cfg(target_os = "linux")]
-mod linux;
-#[cfg(target_os = "linux")]
-mod model;
-#[cfg(target_os = "linux")]
-mod nav;
-#[cfg(target_os = "linux")]
-mod probe;
-#[cfg(target_os = "linux")]
-mod search;
-#[cfg(target_os = "linux")]
-mod ui;
+#[cfg_attr(target_os = "linux", path = "linux/mod.rs")]
+#[cfg_attr(not(target_os = "linux"), path = "unsupported.rs")]
+mod platform;
-#[cfg(not(target_os = "linux"))]
-mod unsupported;
-
-#[cfg(target_os = "linux")]
-fn main() -> color_eyre::eyre::Result<()> {
- linux::run()
-}
-
-#[cfg(not(target_os = "linux"))]
-fn main() {
- unsupported::run();
+fn main() -> platform::MainResult {
+ platform::run()
}
diff --git a/crates/memview/src/unsupported.rs b/crates/memview/src/unsupported.rs
index 9be3132..e3ea7b1 100644
--- a/crates/memview/src/unsupported.rs
+++ b/crates/memview/src/unsupported.rs
@@ -1,4 +1,8 @@
-pub fn run() -> ! {
+use std::process::ExitCode;
+
+pub type MainResult = ExitCode;
+
+pub fn run() -> MainResult {
eprintln!("memview is not supported on this system: Linux is required.");
- std::process::exit(1);
+ ExitCode::FAILURE
}