Fixed bug with upload
This commit is contained in:
@@ -34,11 +34,11 @@ die() { echo "${RED}FAIL${RST} $*" >&2; exit 1; }
|
||||
[[ -f "$CONFIG" ]] || die "No .anvil.toml found in $SCRIPT_DIR"
|
||||
|
||||
toml_get() {
|
||||
grep "^$1 " "$CONFIG" | head -1 | sed 's/.*= *"\{0,1\}\([^"]*\)"\{0,1\}/\1/' | tr -d ' '
|
||||
(grep "^$1 " "$CONFIG" 2>/dev/null || true) | head -1 | sed 's/.*= *"\{0,1\}\([^"]*\)"\{0,1\}/\1/' | tr -d ' '
|
||||
}
|
||||
|
||||
toml_array() {
|
||||
grep "^$1 " "$CONFIG" | head -1 \
|
||||
(grep "^$1 " "$CONFIG" 2>/dev/null || true) | head -1 \
|
||||
| sed 's/.*\[//; s/\].*//; s/"//g; s/,/ /g' | tr -s ' '
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ BAUD="$(toml_get 'baud')"
|
||||
[[ -n "$FQBN" ]] || die "Could not read fqbn from .anvil.toml"
|
||||
|
||||
BAUD="${BAUD:-115200}"
|
||||
DEFAULT_PORT="$(toml_get 'port')"
|
||||
SKETCH_DIR="$SCRIPT_DIR/$SKETCH_NAME"
|
||||
BUILD_DIR="$SCRIPT_DIR/.build"
|
||||
|
||||
@@ -86,14 +87,28 @@ command -v arduino-cli &>/dev/null \
|
||||
|
||||
# -- Auto-detect port ------------------------------------------------------
|
||||
if [[ -z "$PORT" ]]; then
|
||||
# Look for the first serial port arduino-cli can see
|
||||
PORT=$(arduino-cli board list 2>/dev/null \
|
||||
| grep -i "serial" \
|
||||
| head -1 \
|
||||
| awk '{print $1}')
|
||||
# Check .anvil.toml for configured port
|
||||
if [[ -n "$DEFAULT_PORT" ]]; then
|
||||
PORT="$DEFAULT_PORT"
|
||||
else
|
||||
# Prefer ttyUSB/ttyACM (real USB devices) over ttyS (hardware UART)
|
||||
PORT=$(arduino-cli board list 2>/dev/null \
|
||||
| grep -i "serial" \
|
||||
| awk '{print $1}' \
|
||||
| grep -E 'ttyUSB|ttyACM|COM' \
|
||||
| head -1)
|
||||
|
||||
# Fallback: any serial port if no USB ports found
|
||||
if [[ -z "$PORT" ]]; then
|
||||
PORT=$(arduino-cli board list 2>/dev/null \
|
||||
| grep -i "serial" \
|
||||
| head -1 \
|
||||
| awk '{print $1}')
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$PORT" ]]; then
|
||||
die "No serial port detected. Is the board plugged in?\n Specify manually: ./upload.sh -p /dev/ttyUSB0"
|
||||
die "No serial port detected. Is the board plugged in?\n Specify manually: ./upload.sh -p /dev/ttyUSB0\n Or set port in .anvil.toml"
|
||||
fi
|
||||
|
||||
warn "Auto-detected port: $PORT (use -p to override)"
|
||||
|
||||
Reference in New Issue
Block a user