CreatBotCrowsnest/installer_ms050.sh
Stephan Wendel 2787cc33fc Fixup: Fixed installer_ms050.sh
Signed-off-by: Stephan Wendel <me@stephanwe.de>
2021-10-27 21:33:44 +02:00

121 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
set -e
# set -x
export DEBIAN_FRONTEND=noninteractive
if [ "${UID}" == "0" ]; then
echo -e "\nDO NOT RUN THIS SCRIPT AS 'root' !!!\n"
exit 1
fi
echo -e "Some Commands have to run as 'root' via sudo."
echo -e "You will be asked for password if needed.\n"
# Stoping existing Daemon
echo -e "Stopping existing webcamd...\n"
sudo systemctl stop webcamd
# Remove existing webcamd.
echo -e "Backup existing files...\n"
mkdir -p ${HOME}/webcamd-backup
if [ -e "/etc/systemd/system/webcamd.service" ]; then
cp -p /etc/systemd/system/webcamd.service ${HOME}/webcamd-backup
fi
if [ -e "/usr/local/bin/webcamd" ]; then
cp -p /usr/local/bin/webcamd ${HOME}/webcamd-backup/
fi
if [ -e "/etc/logrotate.d/webcamd" ]; then
cp -p /etc/logrotate.d/webcamd ${HOME}/webcamd-backup/webcamd.logrotate
fi
# Remove existing.
echo -e "Removing existing webcamd...\n"
sudo rm -rf /etc/logrotate.d/webcamd
sudo rm -rf /usr/local/bin/webcamd
sudo rm -rf /etc/systemd/system/webcamd.service
sudo rm -rf ${HOME}/klipper_logs/webcamd.log
sudo rm -rf /var/log/webcamd.log
# Install Dependency
sudo apt update
sudo apt install crudini -y
# Install Project "crowsnest"
echo -e "Installing webcamd and enable Service"
sudo ln -s $PWD/webcamd /usr/local/bin/webcamd
sudo cp -r $PWD/file_templates/webcamd.service /etc/systemd/system/
cp -r $PWD/sample_configs/minimal.conf ${HOME}/klipper_config/webcam.conf
sudo systemctl daemon-reload
sudo systemctl enable webcamd
# Install ustreamer
# Make sure its clean
if [ -d "${HOME}/ustreamer" ]; then
rm -rf ${HOME}/ustreamer/
fi
echo -e "Compiling ustreamer..."
cd ~
git clone https://github.com/pikvm/ustreamer.git
cd ustreamer
if [[ "$(cat /proc/device-tree/model | cut -d ' ' -f1)" = "Raspberry" ]]; then
sudo apt update
sudo apt install build-essential libevent-dev libjpeg-dev libbsd-dev \
libraspberrypi-dev libgpiod-dev -y
export WITH_OMX=1
make -j $(nproc) # push limit
echo -e "Create symlink..."
sudo ln -sf ${HOME}/ustreamer/ustreamer /usr/local/bin/
else
sudo apt update
sudo apt install build-essential libevent-dev libjpeg-dev libbsd-dev \
libgpiod-dev -y
make -j $(nproc)
echo -e "Create symlink..."
sudo ln -sf ${HOME}/ustreamer/ustreamer /usr/local/bin/
fi
# Install v4l2rtspserver
# Make sure its clean
if [ -d "${HOME}/v4l2rtspserver" ]; then
rm -rf ${HOME}/v4l2rtspserver/
fi
echo -e "Compiling v4l2rtspserver..."
cd ~
git clone https://github.com/mpromonet/v4l2rtspserver.git
cd v4l2rtspserver
sudo apt install cmake liblivemedia-dev liblog4cpp5-dev -y
cmake . && make -j $(nproc) # push limit
echo -e "Create symlink..."
sudo ln -sf ${HOME}/v4l2rtspserver/v4l2rtspserver /usr/local/bin/
# create mjpg_streamer symlink
echo -e "Create mjpg_streamer symlink..."
sudo ln -sf ${HOME}/mjpg-streamer/mjpg_streamer /usr/local/bin/
# Start webcamd
sudo sh -c "echo bcm2835-v4l2 >> /etc/modules"
sudo systemctl start webcamd
# webcamd to moonraker.conf
echo -e "Adding update manager to moonraker.conf"
update_section=$(grep -c '\[update_manager webcamd\]' \
${HOME}/klipper_config/moonraker.conf)
if [ "${update_section}" -eq 0 ]; then
echo -e "\n" >> ${HOME}/klipper_config/moonraker.conf
while read -r line; do
echo -e "${line}" >> ${HOME}/klipper_config/moonraker.conf
done < "$PWD/file_templates/moonraker_update.txt"
echo -e "\n" >> ${HOME}/klipper_config/moonraker.conf
else
echo -e "[update_manager webcamd] already exist in moonraker.conf [SKIPPED]"
fi
echo -e "Finished Installation..."
echo -e "Please reboot the PI."
exit 0