export RUSTFLAGS := "-C target-cpu=native" export WEBKIT_DISABLE_COMPOSITING_MODE := "1" export DOCKER_CONFIG := env_var_or_default("DOCKER_CONFIG", ".lanspread-peer-cli/docker-config") run: cargo tauri dev --release build: cargo tauri build --no-bundle #-- --profile dev bundle: cargo tauri build -- --profile production fmt: cargo +nightly fmt just --fmt _fix: cargo fix cargo clippy --fix fix: _fix fmt clippy: cargo clippy test: cargo test --workspace clean: cargo clean peer-cli-build: cargo build -p lanspread-peer-cli peer-cli-image: mkdir -p "$DOCKER_CONFIG" docker build -f crates/lanspread-peer-cli/Dockerfile -t lanspread-peer-cli:dev . # macvlan: each peer container gets its own MAC/IP on the real LAN. # Override on the command line if your LAN differs, e.g. # just LANSPREAD_PARENT_IFACE=enp4s0 LANSPREAD_SUBNET=10.0.0.0/24 LANSPREAD_GATEWAY=10.0.0.1 peer-cli-net LANSPREAD_NET := "lanspread" LANSPREAD_PARENT_IFACE := "eth0" LANSPREAD_SUBNET := "192.168.1.0/24" LANSPREAD_GATEWAY := "192.168.1.1" peer-cli-net: mkdir -p "$DOCKER_CONFIG" docker network inspect {{ LANSPREAD_NET }} >/dev/null 2>&1 || \ docker network create -d macvlan \ --subnet={{ LANSPREAD_SUBNET }} \ --gateway={{ LANSPREAD_GATEWAY }} \ -o parent={{ LANSPREAD_PARENT_IFACE }} \ {{ LANSPREAD_NET }} peer-cli-run NAME: peer-cli-net mkdir -p ".lanspread-peer-cli/{{ NAME }}/state" ".lanspread-peer-cli/{{ NAME }}/games" docker run --rm --init --network {{ LANSPREAD_NET }} --name "lanspread-peer-cli-{{ NAME }}" -i \ -v "$PWD/.lanspread-peer-cli/{{ NAME }}/state:/state" \ -v "$PWD/.lanspread-peer-cli/{{ NAME }}/games:/games" \ lanspread-peer-cli:dev \ --name "{{ NAME }}" \ --games-dir /games \ --state-dir /state \ --catalog-db /app/game.db peer-cli-alpha: peer-cli-net mkdir -p ".lanspread-peer-cli/alpha/state" docker run --rm --init --network lanspread --name "lanspread-peer-cli-alpha" -i \ -v "$PWD/.lanspread-peer-cli/alpha/state:/state" \ -v "$PWD/crates/lanspread-peer-cli/fixtures/fixture-alpha:/games:ro" \ lanspread-peer-cli:dev \ --name "alpha" \ --games-dir /games \ --state-dir /state \ --catalog-db /app/game.db peer-cli-bravo: peer-cli-net mkdir -p ".lanspread-peer-cli/bravo/state" docker run --rm --init --network lanspread --name "lanspread-peer-cli-bravo" -i \ -v "$PWD/.lanspread-peer-cli/bravo/state:/state" \ -v "$PWD/crates/lanspread-peer-cli/fixtures/fixture-bravo:/games:ro" \ lanspread-peer-cli:dev \ --name "bravo" \ --games-dir /games \ --state-dir /state \ --catalog-db /app/game.db peer-cli-charlie: peer-cli-net mkdir -p ".lanspread-peer-cli/charlie/state" docker run --rm --init --network lanspread --name "lanspread-peer-cli-charlie" -i \ -v "$PWD/.lanspread-peer-cli/charlie/state:/state" \ -v "$PWD/crates/lanspread-peer-cli/fixtures/fixture-charlie:/games:ro" \ lanspread-peer-cli:dev \ --name "charlie" \ --games-dir /games \ --state-dir /state \ --catalog-db /app/game.db