Compare commits

..

3 Commits

Author SHA1 Message Date
andy.boot
646cdd976d release: increment version (#485) 2025-04-01 23:19:59 +01:00
andy.boot
9a49221ac1 fix: status mesages go to stderr not stdout (#483)
Progress spinner and status line are written to stderr
instead of stdout.

No longer any need to detect if stdout is being redirected.
2025-04-01 23:19:36 +01:00
andy.boot
1b4116e39d fix: all arguments now use '-' instead of '_' (#484)
* cli: unify long arguments (dashes instead of underscores)

* completions: autoregen completions

---------

Co-authored-by: Pavel Kulyov <kulyov.pavel@gmail.com>
2025-04-01 23:18:49 +01:00
6 changed files with 18 additions and 15 deletions

2
Cargo.lock generated
View File

@@ -309,7 +309,7 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]]
name = "du-dust"
version = "1.1.2"
version = "1.2.0"
dependencies = [
"ansi_term",
"assert_cmd",

View File

@@ -1,7 +1,7 @@
[package]
name = "du-dust"
description = "A more intuitive version of du"
version = "1.1.2"
version = "1.2.0"
authors = ["bootandy <bootandy@gmail.com>", "nebkor <code@ardent.nebcorp.com>"]
edition = "2024"
readme = "README.md"

View File

@@ -1,6 +1,6 @@
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.TH Dust 1 "Dust 1.1.2"
.TH Dust 1 "Dust 1.2.0"
.SH NAME
Dust \- Like du but more intuitive
.SH SYNOPSIS
@@ -137,4 +137,4 @@ Print version
[\fIPATH\fR]
.SH VERSION
v1.1.2
v1.2.0

View File

@@ -4,7 +4,6 @@ use clap::ArgMatches;
use config_file::FromConfigFile;
use regex::Regex;
use serde::Deserialize;
use std::io::IsTerminal;
use std::path::Path;
use std::path::PathBuf;
@@ -54,9 +53,7 @@ impl Config {
Some(true) == self.force_colors || options.get_flag("force_colors")
}
pub fn get_disable_progress(&self, options: &ArgMatches) -> bool {
Some(true) == self.disable_progress
|| options.get_flag("disable_progress")
|| !std::io::stdout().is_terminal()
Some(true) == self.disable_progress || options.get_flag("disable_progress")
}
pub fn get_apparent_size(&self, options: &ArgMatches) -> bool {
Some(true) == self.display_apparent_size || options.get_flag("display_apparent_size")

View File

@@ -118,7 +118,7 @@ impl PIndicator {
let time_info_thread = std::thread::spawn(move || {
let mut progress_char_i: usize = 0;
let mut stdout = std::io::stdout();
let mut stderr = std::io::stderr();
let mut msg = "".to_string();
// While the timeout triggers we go round the loop
@@ -127,7 +127,8 @@ impl PIndicator {
receiver.recv_timeout(Duration::from_millis(SPINNER_SLEEP_TIME))
{
// Clear the text written by 'write!'& Return at the start of line
print!("\r{:width$}", " ", width = msg.len());
let clear = format!("\r{:width$}", " ", width = msg.len());
write!(stderr, "{clear}").unwrap();
let prog_char = PROGRESS_CHARS[progress_char_i];
msg = match data.state.load(ORDERING) {
@@ -136,15 +137,17 @@ impl PIndicator {
_ => panic!("Unknown State"),
};
write!(stdout, "\r{msg}").unwrap();
stdout.flush().unwrap();
write!(stderr, "\r{msg}").unwrap();
stderr.flush().unwrap();
progress_char_i += 1;
progress_char_i %= PROGRESS_CHARS_LEN;
}
print!("\r{:width$}", " ", width = msg.len());
print!("\r");
stdout.flush().unwrap();
let clear = format!("\r{:width$}", " ", width = msg.len());
write!(stderr, "{clear}").unwrap();
write!(stderr, "\r").unwrap();
stderr.flush().unwrap();
});
self.thread = Some((stop_handler, time_info_thread))
}

View File

@@ -10,6 +10,9 @@ use std::str;
fn build_command<T: AsRef<OsStr>>(command_args: Vec<T>) -> String {
let mut cmd = &mut Command::cargo_bin("dust").unwrap();
// Hide progress bar
cmd = cmd.arg("-P");
for p in command_args {
cmd = cmd.arg(p);
}