Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dysk for openSUSE:Factory checked in at 2025-12-05 16:54:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dysk (Old) and /work/SRC/openSUSE:Factory/.dysk.new.1939 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dysk" Fri Dec 5 16:54:03 2025 rev:11 rq:1321058 version:3.5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/dysk/dysk.changes 2025-11-09 21:12:29.906679504 +0100 +++ /work/SRC/openSUSE:Factory/.dysk.new.1939/dysk.changes 2025-12-05 16:55:00.024280425 +0100 @@ -1,0 +2,10 @@ +Thu Dec 04 06:24:10 UTC 2025 - Johannes Kastl <[email protected]> + +- Update to version 3.5.0: + * Windows: detect storage spaces - Thanks @mokurin000 and + @acieslewicz + * silently handle broken pipe on printing to stdout - Fix #104 + * don't print a TTY Reset when called with --color no or piped to + a non TTY stream - Fix #105 + +------------------------------------------------------------------- Old: ---- dysk-3.4.0.obscpio New: ---- dysk-3.5.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dysk.spec ++++++ --- /var/tmp/diff_new_pack.bu00aW/_old 2025-12-05 16:55:02.188370902 +0100 +++ /var/tmp/diff_new_pack.bu00aW/_new 2025-12-05 16:55:02.196371236 +0100 @@ -17,7 +17,7 @@ Name: dysk -Version: 3.4.0 +Version: 3.5.0 Release: 0 Summary: Get information on filesystems, like df but better License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bu00aW/_old 2025-12-05 16:55:02.356377926 +0100 +++ /var/tmp/diff_new_pack.bu00aW/_new 2025-12-05 16:55:02.356377926 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">v3.4.0</param> + <param name="revision">v3.5.0</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.bu00aW/_old 2025-12-05 16:55:02.376378762 +0100 +++ /var/tmp/diff_new_pack.bu00aW/_new 2025-12-05 16:55:02.380378930 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/Canop/dysk</param> - <param name="changesrevision">32977dafc87c502c6e53d6467abf5592b933b54a</param></service></servicedata> + <param name="changesrevision">84f8295f0a149c2ab889057ab2965d31749620c6</param></service></servicedata> (No newline at EOF) ++++++ dysk-3.4.0.obscpio -> dysk-3.5.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/CHANGELOG.md new/dysk-3.5.0/CHANGELOG.md --- old/dysk-3.4.0/CHANGELOG.md 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/CHANGELOG.md 2025-12-02 13:03:33.000000000 +0100 @@ -1,3 +1,9 @@ +<a name="v3.5.0"></a> +### v3.5.0 - 2025/12/02 +- Windows: detect storage spaces - Thanks @mokurin000 and @acieslewicz +- silently handle broken pipe on printing to stdout - Fix #104 +- don't print a TTY Reset when called with `--color no` or piped to a non TTY stream - Fix #105 + <a name="v3.4.0"></a> ### v3.4.0 - 2025/11/08 - more mounts are detected on Mac (eg remote SMB volumes) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/Cargo.lock new/dysk-3.5.0/Cargo.lock --- old/dysk-3.4.0/Cargo.lock 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/Cargo.lock 2025-12-02 13:03:33.000000000 +0100 @@ -348,7 +348,7 @@ [[package]] name = "dysk" -version = "3.4.0" +version = "3.5.0" dependencies = [ "clap", "clap_complete", @@ -360,7 +360,7 @@ [[package]] name = "dysk-cli" -version = "3.4.0" +version = "3.5.0" dependencies = [ "bet", "clap", @@ -369,7 +369,7 @@ "lfs-core", "serde", "serde_json", - "termimad 0.34.0", + "termimad 0.34.1", ] [[package]] @@ -469,9 +469,9 @@ [[package]] name = "lfs-core" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0745105cde4e8b166b96a9e6db9de41c8694540fb787018607297b9d9ff6fd0" +checksum = "9ad07aae5298361771c2d75d94a8ce8785e21afa1023c7ee9cc3484b15d97da4" dependencies = [ "core-foundation", "core-foundation-sys", @@ -541,6 +541,15 @@ ] [[package]] +name = "minimad" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b688969b16915f3ecadc7829d5b7779dee4977e503f767f34136803d5c06f" +dependencies = [ + "once_cell", +] + +[[package]] name = "mio" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -829,7 +838,7 @@ "crokey", "crossbeam", "lazy-regex", - "minimad", + "minimad 0.13.1", "serde", "thiserror 2.0.15", "unicode-width", @@ -837,15 +846,15 @@ [[package]] name = "termimad" -version = "0.34.0" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ff5ca043d65d4ea43b65cdb4e3aba119657d0d12caf44f93212ec3168a8e20" +checksum = "889a9370996b74cf46016ce35b96c248a9ac36d69aab1d112b3e09bc33affa49" dependencies = [ "coolor", "crokey", "crossbeam", "lazy-regex", - "minimad", + "minimad 0.14.0", "serde", "thiserror 2.0.15", "unicode-width", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/Cargo.toml new/dysk-3.5.0/Cargo.toml --- old/dysk-3.4.0/Cargo.toml 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/Cargo.toml 2025-12-02 13:03:33.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "dysk" -version = "3.4.0" +version = "3.5.0" authors = ["dystroy <[email protected]>"] edition = "2018" keywords = ["linux", "mac", "filesystem", "disk"] @@ -11,19 +11,19 @@ homepage = "https://dystroy.org/dysk" documentation = "https://dystroy.org/dysk" readme = "README.md" -rust-version = "1.70" +rust-version = "1.75" exclude = ["website", "dysk*.zip"] build = "build.rs" -resolver = "1" +resolver = "2" [dependencies] -dysk-cli = { version = "3.4.0", path = "cli" } # beware: version is also in build dependencies +dysk-cli = { version = "3.5.0", path = "cli" } # beware: version is also in build dependencies [build-dependencies] clap = { version = "4.4", features = ["derive", "cargo"] } clap_complete = "4.4" clap_mangen = "0.2.12" -dysk-cli = { version = "3.4.0", path = "cli" } +dysk-cli = { version = "3.5.0", path = "cli" } serde = { version = "1.0", features = ["derive"] } toml = "0.7" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/bacon.toml new/dysk-3.5.0/bacon.toml --- old/dysk-3.4.0/bacon.toml 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/bacon.toml 2025-12-02 13:03:33.000000000 +0100 @@ -6,7 +6,18 @@ [jobs] [jobs.check] -command = ["cargo", "check", "--all-targets", "--color", "always"] +command = ["cargo", "check", "--all-targets"] +need_stdout = false +watch = ["tests", "benches", "examples"] + +# A task dedicated to checking cargo can be compiled with the MSRV +[jobs.check-msrv] +command = [ + "cargo", + "+1.75", # adjust depending on the MSRV + "check", + "--all-targets", +] need_stdout = false watch = ["tests", "benches", "examples"] @@ -67,3 +78,4 @@ d = "job:doc-open" t = "job:test" r = "job:run" +v = "job:check-msrv" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/build.rs new/dysk-3.5.0/build.rs --- old/dysk-3.4.0/build.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/build.rs 2025-12-02 13:03:33.000000000 +0100 @@ -56,7 +56,7 @@ /// Check that all dysk versions are the same /// /// See <https://github.com/Canop/dysk/issues/65> -fn check_version_consistency() -> std::io::Result<()> { +fn check_version_consistency() { #[derive(Deserialize)] struct Package { version: String, @@ -87,7 +87,7 @@ let Ok(s) = fs::read_to_string("cli/Cargo.toml") else { // won't be visible unless run with -vv eprintln!("No local cli/Cargo.toml -- Assuming a cargo publish compilation"); - return Ok(()); + return; }; let cli_cargo: CliCargo = toml::from_str(&s).unwrap(); let ok = (version == main_cargo.package.version) @@ -99,11 +99,10 @@ } else { panic!("VERSION MISMATCH - All dysk and dysk-cli versions must be the same"); } - Ok(()) } fn main() -> std::io::Result<()> { - check_version_consistency()?; + check_version_consistency(); build_completion_scripts(); build_man_page()?; Ok(()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/Cargo.toml new/dysk-3.5.0/cli/Cargo.toml --- old/dysk-3.4.0/cli/Cargo.toml 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/Cargo.toml 2025-12-02 13:03:33.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "dysk-cli" -version = "3.4.0" +version = "3.5.0" authors = ["dystroy <[email protected]>"] edition = "2021" license = "MIT" @@ -16,14 +16,12 @@ file-size = "1.0.3" #lfs-core = { git = "https://github.com/Canop/lfs-core.git", branch = "smb" } #lfs-core = { path = "../../lfs-core" } -lfs-core = "0.17.0" +lfs-core = "0.18.0" serde = "1.0" serde_json = "1.0" -termimad = "0.34" +termimad = "0.34.1" +#termimad = { path = "../../termimad" } [profile.release] strip = true -[patch.crates-io] -# termimad = { path = "../../termimad" } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/src/csv.rs new/dysk-3.5.0/cli/src/csv.rs --- old/dysk-3.4.0/cli/src/csv.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/src/csv.rs 2025-12-02 13:03:33.000000000 +0100 @@ -59,12 +59,13 @@ } } -pub fn print( +pub fn write<W: Write>( + w: &mut W, mounts: &[&Mount], args: &Args, -) -> Result<(), std::io::Error> { +) -> std::io::Result<()> { let units = args.units; - let mut csv = Csv::new(args.csv_separator, std::io::stdout()); + let mut csv = Csv::new(args.csv_separator, w); for col in args.cols.cols() { csv.cell(col.title())?; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/src/lib.rs new/dysk-3.5.0/cli/src/lib.rs --- old/dysk-3.4.0/cli/src/lib.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/src/lib.rs 2025-12-02 13:03:33.000000000 +0100 @@ -19,24 +19,36 @@ normal::*, }, clap::Parser, + std::io::{ + self, + Write, + }, }; +/// Print according to launch arguments +/// +/// # Errors +/// Returns an `io::Error` if writing to stdout fails #[allow(clippy::match_like_matches_macro)] -pub fn run() { +pub fn run() -> io::Result<()> { + let mut w = io::stdout(); let args = Args::parse(); if args.version { - println!("dysk {}", env!("CARGO_PKG_VERSION")); - return; + return writeln!(&mut w, "dysk {}", env!("CARGO_PKG_VERSION")); } if args.help { help::print(args.ascii); - csi_reset(); - return; + if args.color() { + csi_reset(); + } + return Ok(()); } if args.list_cols { - list_cols::print(args.color(), args.ascii); - csi_reset(); - return; + list_cols::write(&mut w, args.color(), args.ascii)?; + if args.color() { + csi_reset(); + } + return Ok(()); } let mut options = lfs_core::ReadOptions::default() @@ -55,7 +67,7 @@ Ok(mounts) => mounts, Err(e) => { eprintln!("Error reading mounts: {}", e); - return; + return Ok(()); } }; if !args.all { @@ -66,7 +78,7 @@ Ok(dev) => dev, Err(e) => { eprintln!("Error getting device of path {}: {}", path.display(), e); - return; + return Ok(()); } }; mounts.retain(|m| m.info.dev == dev); @@ -76,29 +88,31 @@ Ok(mounts) => mounts, Err(e) => { eprintln!("Error in filter evaluation: {}", e); - return; + return Ok(()); } }; if args.csv { - csv::print(&mounts, &args).expect("writing csv failed"); - return; + return csv::write(&mut w, &mounts, &args); } if args.json { - println!( + return writeln!( + &mut w, "{}", serde_json::to_string_pretty(&json::output_value(&mounts, args.units)).unwrap() ); - return; } if mounts.is_empty() { - println!("no mount to display - try\n dysk -a"); - return; + return writeln!(&mut w, "no mount to display - try\n dysk -a"); + } + table::write(&mut w, &mounts, args.color(), &args)?; + if args.color() { + csi_reset(); } - table::print(&mounts, args.color(), &args); - csi_reset(); + Ok(()) } /// output a Reset CSI sequence fn csi_reset() { print!("\u{1b}[0m"); } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/src/list_cols.rs new/dysk-3.5.0/cli/src/list_cols.rs --- old/dysk-3.4.0/cli/src/list_cols.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/src/list_cols.rs 2025-12-02 13:03:33.000000000 +0100 @@ -4,6 +4,10 @@ MadSkin, minimad::OwningTemplateExpander, }, + std::io::{ + self, + Write, + }, }; static MD: &str = r#" @@ -25,10 +29,11 @@ "#; /// Print an help text describing columns -pub fn print( +pub fn write<W: Write>( + w: &mut W, color: bool, ascii: bool, -) { +) -> io::Result<()> { let mut expander = OwningTemplateExpander::new(); expander.set_default(""); for &col in ALL_COLS { @@ -47,5 +52,5 @@ if ascii { skin.limit_to_ascii(); } - skin.print_owning_expander_md(&expander, MD); + skin.write_owning_expander_md(w, &expander, MD) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/src/normal.rs new/dysk-3.5.0/cli/src/normal.rs --- old/dysk-3.4.0/cli/src/normal.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/src/normal.rs 2025-12-02 13:03:33.000000000 +0100 @@ -15,7 +15,7 @@ || m.info.fs_type == "zfs" // unless it's zfs - see https://github.com/Canop/dysk/issues/32 || m.is_remote() ) - && m.disk.as_ref().is_none_or(|d| !d.image) // not real + && m.disk.as_ref().map_or(true, |d| !d.image) // not real && !m.info.bound // removing bound mounts && m.info.fs_type != "squashfs" // quite ad-hoc... && !is_system_path(&m.info.mount_point) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/cli/src/table.rs new/dysk-3.5.0/cli/src/table.rs --- old/dysk-3.4.0/cli/src/table.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/cli/src/table.rs 2025-12-02 13:03:33.000000000 +0100 @@ -4,6 +4,7 @@ col::Col, }, lfs_core::*, + std::io::Write, termimad::{ CompoundStyle, MadSkin, @@ -27,13 +28,14 @@ static BAR_WIDTH: usize = 5; static INODES_BAR_WIDTH: usize = 5; -pub fn print( +pub fn write<W: Write>( + w: &mut W, mounts: &[&Mount], color: bool, args: &Args, -) { +) -> std::io::Result<()> { if args.cols.is_empty() { - return; + return Ok(()); } let units = args.units; let mut expander = OwningTemplateExpander::new(); @@ -136,7 +138,7 @@ ); } - skin.print_owning_expander_md(&expander, &tbl); + skin.write_owning_expander_md(w, &expander, &tbl) } fn make_colored_skin() -> MadSkin { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.4.0/src/main.rs new/dysk-3.5.0/src/main.rs --- old/dysk-3.4.0/src/main.rs 2025-11-08 18:20:40.000000000 +0100 +++ new/dysk-3.5.0/src/main.rs 2025-12-02 13:03:33.000000000 +0100 @@ -1,4 +1,6 @@ #[allow(clippy::match_like_matches_macro)] fn main() { - dysk_cli::run(); + if dysk_cli::run().is_err() { + std::process::exit(141); + } } ++++++ dysk.obsinfo ++++++ --- /var/tmp/diff_new_pack.bu00aW/_old 2025-12-05 16:55:03.216413883 +0100 +++ /var/tmp/diff_new_pack.bu00aW/_new 2025-12-05 16:55:03.236414719 +0100 @@ -1,5 +1,5 @@ name: dysk -version: 3.4.0 -mtime: 1762622440 -commit: 32977dafc87c502c6e53d6467abf5592b933b54a +version: 3.5.0 +mtime: 1764677013 +commit: 84f8295f0a149c2ab889057ab2965d31749620c6 ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/dysk/vendor.tar.zst /work/SRC/openSUSE:Factory/.dysk.new.1939/vendor.tar.zst differ: char 7, line 1
