#!/usr/bin/env bash # deploy.sh — заливка бинарей на Pluto (обе или одна плата) # Использование: # scripts/deploy.sh # обе платы из toolchain.env # scripts/deploy.sh 192.168.2.1 # только одна плата # scripts/deploy.sh # явные адреса # scripts/deploy.sh bench # только бенчмарк # Прошивка v0.38: sftp-server отсутствует → обязателен scp -O (legacy). set -euo pipefail source "$(dirname "$0")/../toolchain.env" cd "$(dirname "$0")/.." # sshpass, если установлен, избавляет от ввода пароля (пароль: analog) if command -v sshpass >/dev/null; then SCP=(sshpass -p "$PLUTO_PASS" scp -O -o StrictHostKeyChecking=no) else SCP=(scp -O) fi FILES=(build/transmitter build/receiver build/ofdm_bench build/udp_gw build/udp_probe) TARGETS=() case "${1:-}" in bench) FILES=(build/ofdm_bench); TARGETS=("${2:-$PLUTO_A}") ;; "") TARGETS=("$PLUTO_A" "$PLUTO_B") ;; *) TARGETS=("$@") ;; esac for f in "${FILES[@]}"; do [ -f "$f" ] || { echo "нет $f — сначала make"; exit 1; } done for ip in "${TARGETS[@]}"; do echo "=== деплой на root@$ip:/tmp/ ===" if ! ping -c1 -W2 "$ip" >/dev/null 2>&1; then echo " ! $ip не пингуется, пропускаю"; continue fi "${SCP[@]}" "${FILES[@]}" "root@$ip:/tmp/" echo " ok: ${FILES[*]}" done echo "Напоминание: rootfs платы в RAM — после перезагрузки залить заново."