Timeout-guard subprocess calls to awww, wal, and bread-theme

wallpaper.rs/pywal.rs/theme.rs each shelled out via a bare
Command::new(...).status() with no timeout — a wedged awww-daemon, pywal
choking on a corrupt/huge image, or a hung bread-theme reload could each
block breadpaper indefinitely. Switched to bread_utils::proc::run (path
dependency for now, see the TODO in Cargo.toml), matching the exact
"anything shelling out to awww" case named in tonight's ecosystem-utils
audit.
This commit is contained in:
Breadway 2026-07-17 09:52:40 +08:00
parent 168a449edf
commit 50efebe5df
5 changed files with 263 additions and 32 deletions

View file

@ -8,3 +8,5 @@ license = "MIT"
[dependencies]
clap = { version = "4", features = ["derive"] }
anyhow = "1"
# TODO(owner): switch to tag-pinned git dependency once bread-utils is merged and tagged, matching the bread-theme pattern
bread-utils = { path = "../bread-ecosystem-fix-worktree/bread-utils" }