refactor: refactor installer and custompios module
Signed-off-by: Stephan Wendel <me@stephanwe.de>
This commit is contained in:
parent
3a48d47f5a
commit
ee6598c292
@ -15,11 +15,14 @@
|
|||||||
[ -n "$CROWSNEST_CROWSNEST_DEPS" ] || CROWSNEST_CROWSNEST_DEPS="git crudini bsdutils findutils v4l-utils ffmpeg"
|
[ -n "$CROWSNEST_CROWSNEST_DEPS" ] || CROWSNEST_CROWSNEST_DEPS="git crudini bsdutils findutils v4l-utils ffmpeg"
|
||||||
[ -n "$CROWSNEST_DEFAULT_CONF" ] || CROWSNEST_DEFAULT_CONF="mainsail_default.conf"
|
[ -n "$CROWSNEST_DEFAULT_CONF" ] || CROWSNEST_DEFAULT_CONF="mainsail_default.conf"
|
||||||
[ -n "$CROWSNEST_DEFAULT_CONF_DIR" ] || CROWSNEST_DEFAULT_CONF_DIR="/home/${BASE_USER}/klipper_config"
|
[ -n "$CROWSNEST_DEFAULT_CONF_DIR" ] || CROWSNEST_DEFAULT_CONF_DIR="/home/${BASE_USER}/klipper_config"
|
||||||
[ -n "$CROWSNEST_MOONRAKER_SUPPORT" ] || CROWSNEST_MOONRAKER_SUPPORT="y"
|
# Force Raspicam fix bool (1:yes / 0:no)
|
||||||
[ -n "$CROWSNEST_FORCE_RASPICAMFIX" ] || CROWSNEST_FORCE_RASPICAMFIX="y"
|
[ -n "$CROWSNEST_FORCE_RASPICAMFIX" ] || CROWSNEST_FORCE_RASPICAMFIX=1
|
||||||
|
# Add Crowsnest to moonraker.conf (update manager) bool (1:yes / 0:no)
|
||||||
|
[ -n "$CROWSNEST_ADD_CROWSNEST_MOONRAKER" ] || CROWSNEST_ADD_CROWSNEST_MOONRAKER=1
|
||||||
|
|
||||||
|
|
||||||
# ustreamer
|
# ustreamer
|
||||||
[ -n "$CROWSNEST_USTREAMER_DEPS" ] || CROWSNEST_USTREAMER_DEPS="git build-essential libevent-dev libjpeg62-turbo-dev \
|
[ -n "$CROWSNEST_USTREAMER_DEPS" ] || CROWSNEST_USTREAMER_DEPS="git build-essential libevent-dev libjpeg8-dev \
|
||||||
libbsd-dev libraspberrypi-dev libgpiod-dev"
|
libbsd-dev libraspberrypi-dev libgpiod-dev"
|
||||||
[ -n "$CROWSNEST_USTREAMER_WITH_OMX" ] || CROWSNEST_USTREAMER_WITH_OMX="y"
|
[ -n "$CROWSNEST_USTREAMER_WITH_OMX" ] || CROWSNEST_USTREAMER_WITH_OMX="y"
|
||||||
[ -n "$CROWSNEST_USTREAMER_WITH_GPIO" ] || CROWSNEST_USTREAMER_WITH_GPIO="n"
|
[ -n "$CROWSNEST_USTREAMER_WITH_GPIO" ] || CROWSNEST_USTREAMER_WITH_GPIO="n"
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
# shellcheck disable=all
|
# shellcheck disable=all
|
||||||
|
|
||||||
# Error handling
|
# Error handling
|
||||||
# set -x # Uncomment for debugging purposes
|
set -Ee
|
||||||
set -e
|
|
||||||
|
|
||||||
source /common.sh
|
source /common.sh
|
||||||
install_cleanup_trap
|
install_cleanup_trap
|
||||||
@ -22,9 +21,10 @@ echo_green "Installing crowsnest and enable webcam Service ..."
|
|||||||
# install dependencies
|
# install dependencies
|
||||||
# force apt update
|
# force apt update
|
||||||
apt update
|
apt update
|
||||||
check_install_pkgs ${CROWSNEST_CROWSNEST_DEPS}
|
# It could use inbuilt dependencie check, but should speed up if preinstalled.
|
||||||
|
check_install_pkgs "${CROWSNEST_CROWSNEST_DEPS}"
|
||||||
# Move to $HOME dir
|
# Move to $HOME dir
|
||||||
pushd /home/${BASE_USER} &> /dev/null || exit 1
|
pushd "/home/${BASE_USER}" &> /dev/null || exit 1
|
||||||
# make sure config folder exist
|
# make sure config folder exist
|
||||||
if [ ! -d "${CROWSNEST_DEFAULT_CONF_DIR}" ]; then
|
if [ ! -d "${CROWSNEST_DEFAULT_CONF_DIR}" ]; then
|
||||||
sudo -u "${BASE_USER}" mkdir -p "${CROWSNEST_DEFAULT_CONF_DIR}"
|
sudo -u "${BASE_USER}" mkdir -p "${CROWSNEST_DEFAULT_CONF_DIR}"
|
||||||
@ -32,20 +32,13 @@ pushd /home/${BASE_USER} &> /dev/null || exit 1
|
|||||||
# clone Repo
|
# clone Repo
|
||||||
echo_green "Clone crowsnest repository ..."
|
echo_green "Clone crowsnest repository ..."
|
||||||
gitclone CROWSNEST_CROWSNEST_REPO crowsnest
|
gitclone CROWSNEST_CROWSNEST_REPO crowsnest
|
||||||
# install crowsnest
|
# install crowsnest - use crowsnest's make unattended
|
||||||
pushd /home/${BASE_USER}/crowsnest &> /dev/null || exit 1
|
pushd "/home/${BASE_USER}/crowsnest" &> /dev/null || exit 1
|
||||||
echo_green "Running crowsnest installer ..."
|
echo_green "Launch crowsnest install routine ..."
|
||||||
sudo -u "${BASE_USER}" make install
|
pushd "/home/${BASE_USER}/crowsnest" &> /dev/null || exit 1
|
||||||
# add update manager section to moonraker.conf
|
sudo -u "${BASE_USER}" make unattended
|
||||||
if [ -f "/home/${BASE_USER}/klipper_config/moonraker.conf" ] &&
|
# Apply Raspicam fix if enabled.
|
||||||
[ "${CROWSNEST_MOONRAKER_SUPPORT}" == "y" ]; then
|
if [ "${CROWSNEST_FORCE_RASPICAMFIX}" == "1" ]; then
|
||||||
sudo -u ${BASE_USER} \
|
|
||||||
sh -c 'echo -e "\n" >> /home/$(whoami)/klipper_config/moonraker.conf'
|
|
||||||
sudo -u ${BASE_USER} \
|
|
||||||
sh -c 'cat file_templates/moonraker_update.txt \
|
|
||||||
>> /home/$(whoami)/klipper_config/moonraker.conf'
|
|
||||||
fi
|
|
||||||
if [ "${CROWSNEST_FORCE_RASPICAMFIX}" == "y" ]; then
|
|
||||||
echo -en "Applying Raspicam Fix ... \r"
|
echo -en "Applying Raspicam Fix ... \r"
|
||||||
sudo sh -c 'echo "bcm2835-v4l2" >> /etc/modules'
|
sudo sh -c 'echo "bcm2835-v4l2" >> /etc/modules'
|
||||||
sudo cp file_templates/bcm2835-v4l2.conf /etc/modprobe.d/
|
sudo cp file_templates/bcm2835-v4l2.conf /etc/modprobe.d/
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
# Crowsnest update_manager entry
|
||||||
[update_manager webcamd]
|
[update_manager webcamd]
|
||||||
type: git_repo
|
type: git_repo
|
||||||
path: ~/crowsnest
|
path: ~/crowsnest
|
||||||
|
@ -2,20 +2,18 @@
|
|||||||
# Crow's Nest
|
# Crow's Nest
|
||||||
# A multiple Cam and Stream Service for mainsailOS
|
# A multiple Cam and Stream Service for mainsailOS
|
||||||
# Written by Stephan Wendel aka KwadFan <me@stephanwe.de>
|
# Written by Stephan Wendel aka KwadFan <me@stephanwe.de>
|
||||||
# Copyright 2021
|
# Copyright 2021 - 2022
|
||||||
# https://github.com/mainsail-crew/crowsnest
|
# https://github.com/mainsail-crew/crowsnest
|
||||||
# GPL V3
|
# GPL V3
|
||||||
########
|
########
|
||||||
|
|
||||||
# shellcheck enable=require-variable-braces
|
# shellcheck enable=require-variable-braces
|
||||||
|
|
||||||
## disabeld SC2086 for some lines because there we want 'word splitting'
|
## disabled SC2086 for some lines because there we want 'word splitting'
|
||||||
|
|
||||||
|
# Exit on errors
|
||||||
set -Ee
|
set -Ee
|
||||||
|
|
||||||
## Debug
|
|
||||||
# set -x
|
|
||||||
|
|
||||||
# Global Vars
|
# Global Vars
|
||||||
BASE_USER=$(whoami)
|
BASE_USER=$(whoami)
|
||||||
TITLE="crowsnest - A Webcam Daemon for Raspberry Pi OS"
|
TITLE="crowsnest - A Webcam Daemon for Raspberry Pi OS"
|
||||||
@ -27,7 +25,7 @@ if [ ${UID} == '0' ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
### noninteractive Check
|
### noninteractive Check
|
||||||
if [ -z "${DEBIAN_FRONTEND}" ]; then
|
if [ "${DEBIAN_FRONTEND}" != "noninteractive" ]; then
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -205,11 +203,12 @@ function install_crowsnest {
|
|||||||
echo -en "Reload systemd to enable new deamon ...\r"
|
echo -en "Reload systemd to enable new deamon ...\r"
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
echo -e "Reload systemd to enable new daemon ... [OK]"
|
echo -e "Reload systemd to enable new daemon ... [OK]"
|
||||||
|
fi
|
||||||
echo -en "Enable webcamd.service on boot ...\r"
|
echo -en "Enable webcamd.service on boot ...\r"
|
||||||
sudo systemctl enable webcamd.service
|
sudo systemctl enable webcamd.service
|
||||||
echo -e "Enable webcamd.service on boot ... [OK]\r"
|
echo -e "Enable webcamd.service on boot ... [OK]\r"
|
||||||
fi
|
if [ "${CROWSNEST_ADD_CROWSNEST_MOONRAKER}" == "1" ] &&
|
||||||
if [ "${UNATTENDED}" == "true" ]; then
|
[ -f "${moonraker_conf}" ]; then
|
||||||
echo -en "Adding Crowsnest Update Manager entry to moonraker.conf ...\r"
|
echo -en "Adding Crowsnest Update Manager entry to moonraker.conf ...\r"
|
||||||
cat "${moonraker_conf}" "${moonraker_update}" | \
|
cat "${moonraker_conf}" "${moonraker_update}" | \
|
||||||
tee "${moonraker_conf}" > /dev/null
|
tee "${moonraker_conf}" > /dev/null
|
||||||
@ -262,7 +261,7 @@ function install_raspicam_fix {
|
|||||||
while getopts "z" arg; do
|
while getopts "z" arg; do
|
||||||
case ${arg} in
|
case ${arg} in
|
||||||
z)
|
z)
|
||||||
echo "Running in UNATTENDED Mode ..."
|
echo "WARN: Running in UNATTENDED Mode ..."
|
||||||
set -x
|
set -x
|
||||||
UNATTENDED="true"
|
UNATTENDED="true"
|
||||||
;;
|
;;
|
||||||
@ -274,13 +273,17 @@ done
|
|||||||
install_cleanup_trap
|
install_cleanup_trap
|
||||||
import_config
|
import_config
|
||||||
welcome_msg
|
welcome_msg
|
||||||
detect_existing_webcamd
|
if [ "${UNATTENDED}" != "true" ]; then
|
||||||
|
detect_existing_webcamd
|
||||||
|
fi
|
||||||
echo -e "Running apt update first ..."
|
echo -e "Running apt update first ..."
|
||||||
sudo apt update
|
sudo apt update
|
||||||
install_crowsnest
|
install_crowsnest
|
||||||
sub_init
|
sub_init
|
||||||
build_apps
|
build_apps
|
||||||
install_raspicam_fix
|
if [ "${UNATTENDED}" != "true" ]; then
|
||||||
|
install_raspicam_fix
|
||||||
|
fi
|
||||||
goodbye_msg
|
goodbye_msg
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -142,7 +142,8 @@ function uninstall_go {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function remove_raspicam_fix {
|
function remove_raspicam_fix {
|
||||||
if [ -f /proc/device-tree/model ] &&
|
if [ -f /etc/modprobe.d/bcm2835-v4l2.conf ] &&
|
||||||
|
[ -f /proc/device-tree/model ] &&
|
||||||
grep -q "Raspberry" /proc/device-tree/model ; then
|
grep -q "Raspberry" /proc/device-tree/model ; then
|
||||||
echo -en "Removing Raspicam Fix ...\r"
|
echo -en "Removing Raspicam Fix ...\r"
|
||||||
sudo sed -i '/bcm2835/d' /etc/modules
|
sudo sed -i '/bcm2835/d' /etc/modules
|
||||||
|
Loading…
x
Reference in New Issue
Block a user