chore: add startup workaround for SpeederPad (#203)

This commit is contained in:
Patrick Gehrsitz
2023-11-13 21:20:59 +01:00
committed by GitHub
parent 549f7d455a
commit 2d53cc4922
4 changed files with 36 additions and 2 deletions

View File

@@ -41,7 +41,7 @@ if [ "$#" -eq 0 ]; then
fi fi
## Parse Args ## Parse Args
while getopts ":vhc:d" arg; do while getopts ":vhc:s:d" arg; do
case "${arg}" in case "${arg}" in
v ) v )
echo -e "\ncrowsnest Version: $(self_version)\n" echo -e "\ncrowsnest Version: $(self_version)\n"
@@ -55,6 +55,15 @@ while getopts ":vhc:d" arg; do
check_cfg "${OPTARG}" check_cfg "${OPTARG}"
export CROWSNEST_CFG="${OPTARG}" export CROWSNEST_CFG="${OPTARG}"
;; ;;
s )
if [[ "$(awk '{print $1}' /proc/uptime | cut -d '.' -f 1)" -lt "120" ]]; then
if [[ "${OPTARG}" ]]; then
sleep "${OPTARG}"
else
sleep 5
fi
fi
;;
d ) d )
set -x set -x
;; ;;

View File

@@ -34,7 +34,8 @@ function help_msg {
echo -e "\t crowsnest [Options]" echo -e "\t crowsnest [Options]"
echo -e "\n\t\t-h Prints this help." echo -e "\n\t\t-h Prints this help."
echo -e "\n\t\t-v Prints Version of crowsnest." echo -e "\n\t\t-v Prints Version of crowsnest."
echo -e "\n\t\t-c </path/to/configfile>\n\t\t\tPath to your webcam.conf\n" echo -e "\n\t\t-c </path/to/configfile>\n\t\t\tPath to your webcam.conf"
echo -e "\n\t\t-s <sleep_seconds>\n\t\t\tDelay start \(in seconds\) after boot\n"
} }
function deprecated_msg_1 { function deprecated_msg_1 {

View File

@@ -123,6 +123,12 @@ main() {
status_msg "Install environment file ..." "1" status_msg "Install environment file ..." "1"
fi fi
if [[ "$(is_speederpad)" = "1" ]]; then
msg "\nSpeederpad detected!"
msg "Add startup delay to environment file ...\n"
add_sleep_to_crowsnest_env
fi
if install_logrotate_conf; then if install_logrotate_conf; then
status_msg "Install logrotate configuration ..." "0" status_msg "Install logrotate configuration ..." "0"
else else

View File

@@ -66,6 +66,15 @@ is_ubuntu_arm() {
fi fi
} }
is_speederpad() {
if grep -q "Ubuntu 20.04." /etc/os-release &&
[[ "$(uname -rm)" = "4.9.191 aarch64" ]]; then
echo "1"
else
echo "0"
fi
}
test_load_module() { test_load_module() {
if modprobe -n "${1}" &> /dev/null; then if modprobe -n "${1}" &> /dev/null; then
echo 1 echo 1
@@ -189,6 +198,15 @@ install_service_file() {
grep -q "${BASE_USER}" "${target_dir}/crowsnest.service" || return 1 grep -q "${BASE_USER}" "${target_dir}/crowsnest.service" || return 1
} }
add_sleep_to_crowsnest_env() {
local service_file
env_file="${CROWSNEST_ENV_PATH}/crowsnest.env"
if [[ -f "${env_file}" ]]; then
sed -i 's/\(CROWSNEST_ARGS="[^"]*\)"/\1 -s"/' "${env_file}"
fi
}
install_env_file() { install_env_file() {
local env_file env_target local env_file env_target
env_file="${PWD}/resources/crowsnest.env" env_file="${PWD}/resources/crowsnest.env"