Introducing the pirouette FPV frame for GFPV
Signed-off-by: Arnaud Morin <arnaud.gfpv@mailops.fr>
This commit is contained in:
34
build.sh
Executable file
34
build.sh
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# @author Arnaud Morin <arnaud.gfpv@mailops.fr>
|
||||
#
|
||||
# Build every export from the model into build/.
|
||||
#
|
||||
# ./build.sh STEP + STL + DXF + the assembly PNGs
|
||||
# ./build.sh --no-png skip the renders, which are most of the runtime
|
||||
#
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if ! command -v uv >/dev/null 2>&1; then
|
||||
echo "build.sh: uv not found." >&2
|
||||
echo " install it: curl -LsSf https://astral.sh/uv/install.sh | sh" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Creates .venv from pyproject.toml the first time; a no-op on every run after
|
||||
# that. --inexact so it installs what the model needs without pruning anything
|
||||
# else you keep in there, an ipython or a cq-editor say.
|
||||
uv sync --inexact
|
||||
|
||||
# --no-sync below: uv run would otherwise re-sync per invocation, and it has no
|
||||
# --inexact of its own, so it would undo the line above and prune those extras.
|
||||
run() { uv run --no-sync python "$@"; }
|
||||
|
||||
# Each part asserts it came out as one solid at import time, so a part that
|
||||
# broke stops the build here rather than quietly exporting a bad STL.
|
||||
for part in plate arm motor_base spar camera_mount standoff lollipop; do
|
||||
run "$part.py"
|
||||
done
|
||||
|
||||
run frame.py "$@"
|
||||
Reference in New Issue
Block a user