Last active
November 16, 2024 11:44
-
-
Save pagdot/9ca6dd8143b0f496b9a8ceb02e9738ed to your computer and use it in GitHub Desktop.
Script to update valetudo binary without internet access on the robot. I've only done a limited amount of testing on the script, so use it at your own risk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # Set to correct arch | |
| ARCH=aarch64 | |
| # set to ssh host e.g. root@192.168.0.17 | |
| SSH_HOST=valetudo | |
| releaseManifest=$(wget -q https://github.com/Hypfer/Valetudo/releases/latest/download/valetudo_release_manifest.json -O -) | |
| echo Found release $(echo "${releaseManifest}" | jq -r ".version") | |
| releaseSum=$(echo "${releaseManifest}" | jq -r ".sha256sums.\"valetudo-${ARCH}\"") | |
| if [[ -z $releaseSum ]]; then | |
| echo Failed to get checksum from release! Exiting | |
| exit 1 | |
| fi | |
| echo "Release checksum: ${releaseSum}" | |
| installedSum=$(ssh "${SSH_HOST}" "sha256sum /data/valetudo | awk '{print \$1}'") | |
| if [[ -z $installedSum ]]; then | |
| echo Failed to get checksum from install! Exiting | |
| exit 1 | |
| fi | |
| echo Installed checksum: ${installedSum} | |
| if [[ "$releaseSum" == "$installedSum" ]]; then | |
| echo Valetudo already up to date! | |
| exit 0 | |
| fi | |
| echo Stopping valetudo and backing up old binary | |
| ssh "${SSH_HOST}" "killall valetudo && mv /data/valetudo /data/valetudo.old" | |
| echo Downloading latest | |
| wget -q -O - "https://github.com/Hypfer/Valetudo/releases/latest/download/valetudo-${ARCH}" | ssh "${SSH_HOST}" "cat > /data/valetudo" | |
| installedSum=$(ssh "${SSH_HOST}" "sha256sum /data/valetudo | awk '{print \$1}'") | |
| if [[ -z $installedSum ]]; then | |
| echo Failed to get checksum from install! Update is borked! | |
| exit 1 | |
| fi | |
| echo Newly installed checksum: ${releaseSum} | |
| if [[ "$releaseSum" != "$installedSum" ]]; then | |
| echo "Checksum don't match! Update is borked!" | |
| exit 1 | |
| fi | |
| echo Update successful! Rebooting | |
| ssh "${SSH_HOST}" "chmod +x /data/valetudo && reboot" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment