Skip to content

Group D: Tauri CLI + system libs (depends on C) #29

@thompsonson

Description

@thompsonson

Depends on Group C (Rust toolchain). Adds Tauri CLI and its Linux system prerequisites. macOS uses system Xcode frameworks — no new brew packages needed there.

Changes

.chezmoi.toml.tmpl — new data flag

[data]
install_tauri = true

Default on. Opt-out exists but most dev machines should have it.

$linuxSpecific / $linuxWithDocker / $linuxWithoutDocker

Add under {{ if .install_tauri }}:

libwebkit2gtk-4.1-dev
libayatana-appindicator3-dev
librsvg2-dev
pkg-config
libssl-dev

pkg-config and libssl-dev are commonly useful beyond Tauri; leaving them in the Tauri-gated block is fine since machines without Tauri will still have other ways to pull them in (or don't need them).

New run_once_after_install-tauri.sh.tmpl

Guarded by {{ if .install_tauri }} and command -v cargo:

if command -v cargo >/dev/null 2>&1; then
  cargo install create-tauri-app --locked
  cargo install tauri-cli --locked
fi

If cargo isn't present (Group C hasn't run yet / disabled), the script is a silent no-op. Makes the dependency on Group C soft at runtime — cleaner than hard-failing.

dot_local/bin/executable_sysup — doctor entries

  • tools_dev or a new tools_lang: add cargo-tauri, create-tauri-app.
  • get_version(): cases for cargo-tauri --version, create-tauri-app --version.

Verification checklist

  • chezmoi execute-template renders cleanly with install_tauri=true and =false.
  • install_tauri=false produces no references to webkit2gtk/appindicator/librsvg in the rendered output.
  • Fresh Linux VM with Groups A + C + D: cargo tauri --version works.
  • Fresh Linux VM without Group C: apply still succeeds; cargo-tauri absent; sysup doctor reports it missing rather than erroring.
  • macOS: sysup doctor shows tauri entries; no brew packages added for Tauri specifically.

Related

  • Depends on Group C (Rust toolchain) — filed separately.
  • No cross-refs to the dev repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions