mirror of
https://github.com/Astatin3/photonvision-2025.0.0-beta-6.git
synced 2026-06-09 00:28:06 -06:00
72 lines
1.7 KiB
Bash
Executable File
72 lines
1.7 KiB
Bash
Executable File
if [ "$#" -ne 2 ]; then
|
|
echo "Illegal number of parameters -- expected (Image release URL) (image suffix)"
|
|
exit 1
|
|
fi
|
|
|
|
# 1st arg should be the release to download the image template from. The release ought to only have one
|
|
# artifact for a "xz" image.
|
|
|
|
NEW_JAR=$(realpath $(find . -name photonvision\*-linuxarm64.jar))
|
|
echo "Using jar: " $NEW_JAR
|
|
echo "Downloading image from" $1
|
|
sudo apt-get install -y xz-utils
|
|
wget -q $1
|
|
ls
|
|
FILE_NAME=$(ls | grep *.xz)
|
|
|
|
if [ -z "$FILE_NAME" ]
|
|
then
|
|
echo "Could not locate image archive!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Downloaded " $FILE_NAME " -- decompressing now..."
|
|
xz -T0 -v --decompress $FILE_NAME
|
|
IMAGE_FILE=$(ls | grep *.img)
|
|
ls
|
|
|
|
if [ -z "$FILE_NAME" ]
|
|
then
|
|
echo "Could not locate unzipped image!"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Unzipped image: " $IMAGE_FILE " -- mounting"
|
|
TMP=$(mktemp -d)
|
|
LOOP=$(sudo losetup --show -fP "${IMAGE_FILE}")
|
|
echo "Image mounted! Copying jar..."
|
|
sudo mount ${LOOP}p2 $TMP
|
|
pushd .
|
|
cd $TMP/opt/photonvision
|
|
sudo cp $NEW_JAR photonvision.jar
|
|
|
|
echo "Jar updated! Creating service..."
|
|
|
|
cd $TMP/etc/systemd/system/multi-user.target.wants
|
|
sudo bash -c "printf \
|
|
\"[Unit]
|
|
Description=Service that runs PhotonVision
|
|
|
|
[Service]
|
|
WorkingDirectory=/opt/photonvision
|
|
ExecStart=/usr/bin/java -Xmx512m -jar /opt/photonvision/photonvision.jar
|
|
ExecStop=/bin/systemctl kill photonvision
|
|
Type=simple
|
|
Restart=on-failure
|
|
RestartSec=1
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target\" > photonvision.service"
|
|
|
|
popd
|
|
|
|
echo "Service created!"
|
|
|
|
sudo umount ${TMP}
|
|
sudo rmdir ${TMP}
|
|
NEW_IMAGE=$(basename "${NEW_JAR/.jar/_$2.img}")
|
|
echo "Renaming image " $IMAGE_FILE " -> " $NEW_IMAGE
|
|
mv $IMAGE_FILE $NEW_IMAGE
|
|
xz -T0 -v -z $NEW_IMAGE
|
|
mv $NEW_IMAGE.xz $(basename "${NEW_JAR/.jar/-image_$2.xz}")
|