Bump version to 0.2.0, add --version and --help CLI flags
- Version 0.2.0 with all new features - Add -v/--version flag to display version - Add -h/--help flag with keybindings overview - Show version in title bar and help overlay
This commit is contained in:
parent
47d1573bba
commit
1fb4dc0092
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "zfsdu"
|
name = "zfsdu"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "ncdu-like disk usage viewer for ZFS with snapshot management"
|
description = "ncdu-like disk usage viewer for ZFS with snapshot management"
|
||||||
authors = ["Florian Schermer"]
|
authors = ["Florian Schermer"]
|
||||||
|
|||||||
Binary file not shown.
51
src/main.rs
51
src/main.rs
@ -13,8 +13,30 @@ use crossterm::{
|
|||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use ratatui::{backend::CrosstermBackend, Terminal};
|
use ratatui::{backend::CrosstermBackend, Terminal};
|
||||||
use std::io;
|
use std::io;
|
||||||
|
use std::env;
|
||||||
|
|
||||||
|
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
|
// Handle command line arguments
|
||||||
|
let args: Vec<String> = env::args().collect();
|
||||||
|
if args.len() > 1 {
|
||||||
|
match args[1].as_str() {
|
||||||
|
"-v" | "--version" => {
|
||||||
|
println!("zfsdu {}", VERSION);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
"-h" | "--help" => {
|
||||||
|
print_help();
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
eprintln!("Unknown option: {}", args[1]);
|
||||||
|
eprintln!("Use --help for usage information");
|
||||||
|
std::process::exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
enable_raw_mode()?;
|
enable_raw_mode()?;
|
||||||
let mut stdout = io::stdout();
|
let mut stdout = io::stdout();
|
||||||
execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?;
|
execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?;
|
||||||
@ -39,6 +61,35 @@ fn main() -> Result<()> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn print_help() {
|
||||||
|
println!("zfsdu {} - ZFS Disk Usage Viewer", VERSION);
|
||||||
|
println!();
|
||||||
|
println!("USAGE:");
|
||||||
|
println!(" zfsdu [OPTIONS]");
|
||||||
|
println!();
|
||||||
|
println!("OPTIONS:");
|
||||||
|
println!(" -h, --help Print help information");
|
||||||
|
println!(" -v, --version Print version information");
|
||||||
|
println!();
|
||||||
|
println!("KEYBINDINGS:");
|
||||||
|
println!(" ↑/k, ↓/j Navigate up/down");
|
||||||
|
println!(" Enter/l Expand/collapse dataset");
|
||||||
|
println!(" Space Mark/unmark snapshot");
|
||||||
|
println!(" +/-/* Select/unselect/invert");
|
||||||
|
println!(" s Toggle sort (Size/Date/Name)");
|
||||||
|
println!(" / Search");
|
||||||
|
println!(" f Filter");
|
||||||
|
println!(" d Delete marked snapshots");
|
||||||
|
println!(" D Toggle dry-run mode");
|
||||||
|
println!(" a Toggle auto-refresh");
|
||||||
|
println!(" r Refresh");
|
||||||
|
println!(" ? Help");
|
||||||
|
println!(" q Quit");
|
||||||
|
println!();
|
||||||
|
println!("CONFIG:");
|
||||||
|
println!(" ~/.config/zfsdu/config.toml");
|
||||||
|
}
|
||||||
|
|
||||||
fn run_app<B: ratatui::backend::Backend>(terminal: &mut Terminal<B>, app: &mut App) -> Result<()> {
|
fn run_app<B: ratatui::backend::Backend>(terminal: &mut Terminal<B>, app: &mut App) -> Result<()> {
|
||||||
loop {
|
loop {
|
||||||
terminal.draw(|f| ui::draw(f, app))?;
|
terminal.draw(|f| ui::draw(f, app))?;
|
||||||
|
|||||||
@ -52,10 +52,12 @@ pub fn draw(f: &mut Frame, app: &mut App) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||||
|
|
||||||
fn draw_title(f: &mut Frame, area: Rect, app: &App) {
|
fn draw_title(f: &mut Frame, area: Rect, app: &App) {
|
||||||
let (bg, _fg, header, _, _, _, _, _, _, _) = get_colors(app);
|
let (bg, _fg, header, _, _, _, _, _, _, _) = get_colors(app);
|
||||||
|
|
||||||
let mut title = " zfsdu ".to_string();
|
let mut title = format!(" zfsdu v{} ", VERSION);
|
||||||
|
|
||||||
// Show sort mode
|
// Show sort mode
|
||||||
title.push_str(&format!("[Sort: {}] ", app.sort_mode.label()));
|
title.push_str(&format!("[Sort: {}] ", app.sort_mode.label()));
|
||||||
@ -435,7 +437,7 @@ fn draw_help(f: &mut Frame, app: &App) {
|
|||||||
let help = Paragraph::new(help_text.join("\n"))
|
let help = Paragraph::new(help_text.join("\n"))
|
||||||
.block(
|
.block(
|
||||||
Block::default()
|
Block::default()
|
||||||
.title(" Help - zfsdu ")
|
.title(format!(" Help - zfsdu v{} ", VERSION))
|
||||||
.borders(Borders::ALL)
|
.borders(Borders::ALL)
|
||||||
.border_style(Style::default().fg(header)),
|
.border_style(Style::default().fg(header)),
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user