42 lines
1.6 KiB
Bash
Executable File
42 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# deploy.sh — заливка бинарей на Pluto (обе или одна плата)
|
||
# Использование:
|
||
# scripts/deploy.sh # обе платы из toolchain.env
|
||
# scripts/deploy.sh 192.168.2.1 # только одна плата
|
||
# scripts/deploy.sh <ipA> <ipB> # явные адреса
|
||
# scripts/deploy.sh bench <ip> # только бенчмарк
|
||
# Прошивка 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)
|
||
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 — после перезагрузки залить заново." |