Files
AvianVisitors/newinstaller.sh
T
2025-03-15 11:17:43 +01:00

64 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
if [ "$EUID" == 0 ]
then echo "Please run as a non-root user."
exit
fi
if [ "$(uname -m)" != "aarch64" ] && [ "$(uname -m)" != "x86_64" ];then
echo "BirdNET-Pi requires a 64-bit OS.
It looks like your operating system is using $(uname -m),
but would need to be aarch64."
exit 1
fi
PY_VERSION=$(python3 -c "import sys; print(f'{sys.version_info[0]}{sys.version_info[1]}')")
if [ "${PY_VERSION}" == "39" ] ;then
echo "### BirdNET-Pi requires a newer OS. Bullseye is deprecated, please use Bookworm. ###"
[ -z "${FORCE_BULLSEYE}" ] && exit
fi
# we require passwordless sudo
sudo -K
if ! sudo -n true; then
echo "Passwordless sudo is not working. Aborting"
exit
fi
# the php code expects the user with uid 1000 on this system
PRIMARY=$(awk -F: '/1000/{print $1}' /etc/passwd)
if [ $USER != $PRIMARY ]; then
echo "Current user \"$USER\" does not match the user with uid 1000 on this system \"$PRIMARY\". Aborting"
exit
fi
# Simple new installer
HOME=$HOME
USER=$USER
export HOME=$HOME
export USER=$USER
PACKAGES_MISSING=
for cmd in git jq ; do
if ! which $cmd &> /dev/null;then
PACKAGES_MISSING="${PACKAGES_MISSING} $cmd"
fi
done
if [[ ! -z $PACKAGES_MISSING ]] ; then
sudo apt update
sudo apt -y install $PACKAGES_MISSING
fi
branch=main
git clone -b $branch --depth=1 https://github.com/Nachtzuster/BirdNET-Pi.git ${HOME}/BirdNET-Pi &&
$HOME/BirdNET-Pi/scripts/install_birdnet.sh
if [ ${PIPESTATUS[0]} -eq 0 ];then
echo "Installation completed successfully"
sudo reboot
else
echo "The installation exited unsuccessfully."
exit 1
fi