Files
mapsize/Cargo.toml
T
Andy Dixon fcac50bae6 Build and behave correctly on every release target
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.
2026-10-08 20:06:22 +01:00

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