Split platform into a portable core (mod.rs) plus unix.rs and windows.rs. - Linux: statx through syscall(2) so static musl links (fstatat fallback on ENOSYS); virtual-fs detection compares f_type as u32. - macOS: Finder trash (~/.Trash or /Volumes/X/.Trashes/<uid>, "name N" collisions, EXDEV falls through to the next location) and `open -R` reveal; never headless. - FreeBSD/NetBSD: fstatat with birth time; trash and reveal unsupported, permanent delete still available on headless systems. - Windows: std read_dir and metadata, allocated size unknown, no inode identity, Recycle Bin via SHFileOperationW (FOF_ALLOWUNDO, all architectures), Explorer /select reveal, no permanent delete, '\\' separator with Windows glob semantics, abs paths via GetFullPathNameW, config in %AppData%. - Local time via a portable LocalTime helper (localtime_r tm_gmtoff on Unix, SystemTimeToTzSpecificLocalTime on Windows) replacing libc tm and mktime in the TUI, snapshot and filter code. - errno, stat field names and mode_t width handled per OS; Unix-only tests gated; clippy clean on all targets. Adds windows-sys =0.61.2 (Windows only; Win32_Foundation, Win32_System_Time, Win32_UI_Shell), already in the lockfile via crossterm.
27 lines
597 B
TOML
27 lines
597 B
TOML
[package]
|
|
name = "mapsize"
|
|
version = "1.2.0"
|
|
edition = "2021"
|
|
license = "GPL-3.0-or-later"
|
|
description = "Interactive terminal disk usage analyser (Rust port)"
|
|
|
|
[dependencies]
|
|
libc = "0.2"
|
|
regex = "1"
|
|
crossbeam-channel = "0.5"
|
|
crossterm = "0.28"
|
|
flate2 = "1"
|
|
sha2 = "0.10"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
unicode-segmentation = "1"
|
|
unicode-width = "0.2"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "=0.61.2", features = ["Win32_Foundation", "Win32_System_Time", "Win32_UI_Shell"] }
|
|
|
|
[profile.release]
|
|
lto = true
|
|
codegen-units = 1
|
|
strip = true
|