- Added `Cargo.toml` to define dependencies and project metadata. - Implemented core CLI functionality for managing virtual microphones (`create`, `edit`, `delete`, `list`, `route`, and `wipe` commands) using `clap`. - Integrated `rusqlite` for persistent state storage and `pipewire` to manage PipeWire nodes. - Ensured graceful handling of feedback loops and system defaults during virtual mic creation and deletion. - Added error handling via `thiserror` for cleaner error definitions.
28 lines
638 B
TOML
28 lines
638 B
TOML
[package]
|
|
name = "vmic"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Create and manage PipeWire virtual microphones."
|
|
license = "AGPL-3+"
|
|
|
|
[[bin]]
|
|
name = "vmic"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
clap = { version = "4", features = ["derive"] }
|
|
clap_complete = "4"
|
|
|
|
thiserror = "^2"
|
|
dirs = "6"
|
|
|
|
rusqlite = { version = "^0", features = ["bundled"] }
|
|
pipewire = "=0.8.0"
|
|
libc = "0.2"
|
|
|
|
# Keep panics from corrupting the sqlite connection mid-transaction; abort
|
|
# is fine for a CLI as there is no long-lived state to unwind for.
|
|
[profile.release]
|
|
panic = "abort"
|
|
lto = true
|