Files
hyprcosmic/cosmic-conf/Cargo.toml
T
gitops e56ffe8465 cosmic-conf: watch + theme asset installation
watch: source-include expansion by textual splicing so diagnostic spans stay
correct across merged files; debounced inotify; a bad edit prints diagnostics
and keeps watching rather than killing the daemon.

assets: plan/apply split mirroring emit.rs. Tarball entries and symlink/
hardlink targets are validated before extraction, sharing one routine between
plan and apply so the check cannot drift.

Added tests/archive_escape.rs as independent verification of that boundary.
The tar crate refuses to build hostile archives through its safe API, so the
fixtures write GNU header name/linkname bytes directly — the same thing a
malicious archiver does. Asserts on the filesystem afterwards rather than on
returned errors, and covers symlink indirection, where neither entry path
contains '..' yet a later write still escapes.

99 tests.
2026-08-09 22:52:33 +07:00

24 lines
561 B
TOML

[package]
name = "cosmic-conf"
version = "0.1.0"
edition = "2021"
license = "GPL-3.0-only"
description = "Compiles a single Hyprland-idiom config file into the cosmic-config tree"
[dependencies]
flate2 = "1.1.9"
notify = "8.2.0"
ron = "0.12"
serde = { version = "1.0.229", features = ["derive"] }
tar = "0.4.46"
[features]
# `emit` links cosmic-config and the component crates. Off by default so the
# pure units (parser, schema, resolve) build and test without the libcosmic
# dependency graph.
default = []
emit = []
[dev-dependencies]
tempfile = "3.27.0"