Files
spore/ctl.sh

55 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
source .env
function info {
sed -n 's/^##//p' ctl.sh
}
function build {
function target {
echo "Building project for $1..."
pio run -e $1
}
function all {
target esp01_1m
target d1_mini
}
${@:-all}
}
function flash {
function target {
echo "Flashing firmware for $1..."
pio run --target upload -e $1
}
${@:-info}
}
function ota {
function update {
echo "Updating node at $1 with $2... "
curl -X POST \
-F "file=@.pio/build/$2/firmware.bin" \
http://$1/api/node/update | jq -r '.status'
}
function all {
echo "Updating all nodes..."
curl -s http://$API_NODE/api/cluster/members | jq -r '.members.[].ip' | while read -r ip; do
ota update $ip $1
done
}
${@:-info}
}
function cluster {
function members {
curl -s http://$API_NODE/api/cluster/members | jq -r '.members[] | "\(.hostname) \(.ip)"'
}
${@:-info}
}
${@:-info}