44 lines
1.0 KiB
Rust
44 lines
1.0 KiB
Rust
use clap::Parser;
|
|
use lsplus::{
|
|
out::{default::default, list::list},
|
|
utils::{get_elements_from_path, SortBy},
|
|
};
|
|
|
|
// Needs to be defined in main
|
|
#[derive(Parser, Debug)]
|
|
#[command(author, version, about, long_about = None)]
|
|
pub struct Args {
|
|
/// Show hidden files
|
|
#[arg(short, long, default_value_t = false)]
|
|
all: bool,
|
|
|
|
/// Print as a list
|
|
#[arg(short, long, default_value_t = false)]
|
|
list: bool,
|
|
|
|
/// Print contents of directories recursively,
|
|
/// specify maximum recursive depth
|
|
#[arg(short, long, default_value_t = 0)]
|
|
recursive: usize,
|
|
|
|
/// Sort elements by parameter
|
|
#[arg(short, long, default_value_t = SortBy::NONE)]
|
|
sort: SortBy,
|
|
|
|
/// Path of the directory to list
|
|
#[arg(default_value_t = String::from("."))]
|
|
path: String,
|
|
}
|
|
|
|
fn main() {
|
|
let args = Args::parse();
|
|
|
|
let elements = get_elements_from_path(args.path, args.all);
|
|
|
|
if args.list {
|
|
list(elements, args.recursive, args.sort);
|
|
} else {
|
|
default(elements);
|
|
}
|
|
}
|