diff --git a/README.md b/README.md index 53b5c5c..1428fc5 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,29 @@ All cameras under Arashi Vision USB Vendor ID `0x2e1a`: --- +## Quickstart with `mise` + +This project includes a [`mise.toml`](mise.toml) configuration that manages the Rust toolchain and exposes convenient task runners: + +```bash +# Trust and install toolchain +mise trust +mise install + +# Install Linux udev rules (one-time setup on Linux for non-root USB access) +mise run udev-install + +# Build & launch the desktop GUI +mise run gui + +# Run the CLI (e.g., list cameras or inspect camera info) +mise run cli -- list +mise run cli -- info + +# Run automated live hardware GUI verification +mise run self-test +``` + ## Building from Source Requires Rust `1.78+` (no C/C++ `libusb` system dependency required—uses pure-Rust [`nusb`](https://docs.rs/nusb)): diff --git a/mise.toml b/mise.toml new file mode 100644 index 0000000..2952d5d --- /dev/null +++ b/mise.toml @@ -0,0 +1,34 @@ +[tools] +rust = "stable" + +[tasks.default] +description = "Build and launch the Insta360 Link Controller desktop GUI" +depends = ["gui"] + +[tasks.gui] +description = "Build and launch the Insta360 Link Controller desktop GUI" +run = "cargo run --release -p insta360-link-gui" + +[tasks.cli] +description = "Run the insta360-link-ctl CLI (e.g. mise run cli -- info)" +run = "cargo run --release -p insta360-link-cli --" + +[tasks.server] +description = "Start the HTTP & WebSocket remote control server on 127.0.0.1:8360" +run = "cargo run --release -p insta360-link-server --" + +[tasks.build] +description = "Build all workspace crates in release mode" +run = "cargo build --release --workspace" + +[tasks.test] +description = "Run all workspace unit and integration tests" +run = "cargo test --workspace" + +[tasks.self-test] +description = "Run the automated live hardware GUI verification sequence" +run = "INSTA360_GUI_SELF_TEST=1 cargo run --release -p insta360-link-gui" + +[tasks.udev-install] +description = "Install Linux udev rules for non-root USB access to Insta360 Link webcams" +run = "sudo cp udev/99-insta360-link.rules /etc/udev/rules.d/99-insta360-link.rules && sudo udevadm control --reload-rules && sudo udevadm trigger"