-
Notifications
You must be signed in to change notification settings - Fork 0
Development
CtrlUserKnown edited this page Jul 21, 2026
·
1 revision
dots is a Rust Cargo workspace.
| Crate | Role |
|---|---|
crates/dots |
The dots binary: CLI, TUI screens, installer, symlink/link engine, config, and the bundled premade assets/. |
crates/tui-core |
Shared TUI chrome — header/footer/description bars, color theme, and the flash-message model — used by the dots screens. |
Key modules in crates/dots/src:
-
main.rs— CLI parsing (clap) and command dispatch; launches the TUI when run with no subcommand. -
symlinks.rs/links.rs— the symlink engine and thelinks.tomlmanifest. -
packages.rs— theDEPSdependency table and shell plugin list. -
installer.rs— package-manager detection and premade config application. -
aliases.rs— alias parsing, CRUD, and the built-in vs user alias sources. -
network.rs— live network monitor (latency probe, DNS, VPN detection) for the dashboard. -
update.rs— update checks and pulls. -
config/—settings.toml, the~/.personallayer, and profile import/export. -
tui/— dashboard and per-screen views.
cargo build --release # optimized binary at target/release/dots
cargo test --all # unit + integration tests
cargo clippy --all -- -D warnings # lints (CI treats warnings as errors)
cargo fmt --all -- --check # formatting checkThere's also a shell integration test that CI runs:
bash tests/integration/test_setup.shAn isolated, disposable test environment lives in
test-env/ —
Containerfiles plus a manage.sh helper for spinning up interactive and CI-style
containers to exercise the installer and the tool without touching your real
home directory. A manual QA checklist is in
docs/manual-test-checklist.md.
CI runs on both Linux and macOS via
.github/workflows/ci.yml:
tests, clippy, rustfmt --check, and the shell integration test. Releases are
built by
.github/workflows/release.yml.
Guides
Contributing