blob: 3ce66857bee7b5321b09715b391ced17f7fd9b21 (
plain)
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
40
41
42
43
44
45
46
47
48
|
use std::sync::Arc;
use sysinfo::{Disk, DiskExt};
use tuikit::term::Term;
use crate::actioner::Actioner;
use crate::fileinfo::human_size;
use crate::fm_error::FmResult;
use crate::status::Status;
use crate::term_manager::{Display, EventReader};
/// Returns a `Display` instance after `tuikit::term::Term` creation.
pub fn init_term() -> FmResult<Term> {
let term: Term<()> = Term::new()?;
term.enable_mouse_support()?;
Ok(term)
}
pub fn disk_space(disks: &[Disk], path_str: String) -> String {
if path_str.is_empty() {
return "".to_owned();
}
let mut size = 0_u64;
let mut disks: Vec<&Disk> = disks.iter().collect();
disks.sort_by_key(|disk| disk.mount_point().as_os_str().len());
for disk in disks {
if path_str.contains(disk.mount_point().as_os_str().to_str().unwrap()) {
size = disk.available_space();
};
}
human_size(size)
}
pub fn print_on_quit(
term: Arc<Term>,
actioner: Actioner,
event_reader: EventReader,
status: Status,
display: Display,
) {
let path = status.selected_non_mut().path_str().unwrap_or_default();
std::mem::drop(term);
std::mem::drop(actioner);
std::mem::drop(event_reader);
std::mem::drop(status);
std::mem::drop(display);
println!("{}", path)
}
|