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]
|
||||
name = "zfsdu"
|
||||
version = "0.1.0"
|
||||
version = "0.2.0"
|
||||
edition = "2021"
|
||||
description = "ncdu-like disk usage viewer for ZFS with snapshot management"
|
||||
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 ratatui::{backend::CrosstermBackend, Terminal};
|
||||
use std::io;
|
||||
use std::env;
|
||||
|
||||
const VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||
|
||||
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()?;
|
||||
let mut stdout = io::stdout();
|
||||
execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?;
|
||||
@ -39,6 +61,35 @@ fn main() -> Result<()> {
|
||||
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<()> {
|
||||
loop {
|
||||
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) {
|
||||
let (bg, _fg, header, _, _, _, _, _, _, _) = get_colors(app);
|
||||
|
||||
let mut title = " zfsdu ".to_string();
|
||||
let mut title = format!(" zfsdu v{} ", VERSION);
|
||||
|
||||
// Show sort mode
|
||||
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"))
|
||||
.block(
|
||||
Block::default()
|
||||
.title(" Help - zfsdu ")
|
||||
.title(format!(" Help - zfsdu v{} ", VERSION))
|
||||
.borders(Borders::ALL)
|
||||
.border_style(Style::default().fg(header)),
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user