feat(moonraker-telegram-bot.sh): multi instance and custom names
Signed-off-by: Dominik Willner th33xitus@gmail.com
This commit is contained in:
18
resources/moonraker-telegram-bot.service
Normal file
18
resources/moonraker-telegram-bot.service
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#Systemd service file for Moonraker Telegram Bot
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Starts Moonraker Telegram Bot instance %INST% on startup
|
||||||
|
Documentation=https://github.com/nlef/moonraker-telegram-bot/wiki
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=TELEGRAM_CONF=%CFG%
|
||||||
|
Type=simple
|
||||||
|
User=%USER%
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=%ENV%/bin/python %DIR%/bot/main.py -c ${TELEGRAM_CONF}
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
@@ -21,26 +21,256 @@ function telegram_bot_systemd() {
|
|||||||
echo "${services}"
|
echo "${services}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_telegram_bot(){
|
function telegram_bot_setup_dialog(){
|
||||||
telegram_bot_setup
|
status_msg "Initializing Telegram Bot installation ..."
|
||||||
do_action_service "restart" "moonraker-telegram-bot"
|
|
||||||
|
### return early if moonraker is not installed
|
||||||
|
local moonraker_services
|
||||||
|
moonraker_services=$(moonraker_systemd)
|
||||||
|
if [[ -z "${moonraker_services}" ]]; then
|
||||||
|
local error="Moonraker not installed! Please install Moonraker first!"
|
||||||
|
log_error "Telegram Bot setup started without Moonraker being installed. Aborting setup."
|
||||||
|
print_error "${error}" && return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local moonraker_count user_input=() moonraker_names=()
|
||||||
|
moonraker_count=$(echo "${moonraker_services}" | wc -w )
|
||||||
|
for service in ${moonraker_services}; do
|
||||||
|
moonraker_names+=( "$(get_instance_name "${service}")" )
|
||||||
|
done
|
||||||
|
|
||||||
|
local telegram_bot_count
|
||||||
|
if (( moonraker_count == 1 )); then
|
||||||
|
ok_msg "Moonraker installation found!\n"
|
||||||
|
telegram_bot_count=1
|
||||||
|
elif (( moonraker_count > 1 )); then
|
||||||
|
top_border
|
||||||
|
printf "|${green}%-55s${white}|\n" " ${moonraker_count} Moonraker instances found!"
|
||||||
|
for name in "${moonraker_names[@]}"; do
|
||||||
|
printf "|${cyan}%-57s${white}|\n" " ● ${name}"
|
||||||
|
done
|
||||||
|
blank_line
|
||||||
|
echo -e "| The setup will apply the same names to Telegram Bot! |"
|
||||||
|
blank_line
|
||||||
|
echo -e "| Please select the number of Telegram Bot instances to |"
|
||||||
|
echo -e "| install. Usually one Telegram Bot instance per |"
|
||||||
|
echo -e "| Moonraker instance is required but you may not |"
|
||||||
|
echo -e "| install more Telegram Bot instances than available |"
|
||||||
|
echo -e "| Moonraker instances. |"
|
||||||
|
bottom_border
|
||||||
|
|
||||||
|
### ask for amount of instances
|
||||||
|
local re="^[1-9][0-9]*$"
|
||||||
|
while ! [[ ${telegram_bot_count} =~ ${re} && ${telegram_bot_count} -le ${moonraker_count} ]]; do
|
||||||
|
read -p "${cyan}###### Number of Telegram Bot instances to set up:${white} " -i "${moonraker_count}" -e telegram_bot_count
|
||||||
|
### break if input is valid
|
||||||
|
[[ ${telegram_bot_count} =~ ${re} && ${telegram_bot_count} -le ${moonraker_count} ]] && break
|
||||||
|
### conditional error messages
|
||||||
|
error_msg "Invalid input:"
|
||||||
|
! [[ ${telegram_bot_count} =~ ${re} ]] && error_msg "● Input not a number"
|
||||||
|
((telegram_bot_count > moonraker_count)) && error_msg "● Number of Telegram Bot instances larger than existing Moonraker instances"
|
||||||
|
done && select_msg "${telegram_bot_count}"
|
||||||
|
else
|
||||||
|
log_error "Internal error. moonraker_count of '${moonraker_count}' not equal or grather than one!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
user_input+=("${telegram_bot_count}")
|
||||||
|
|
||||||
|
### confirm instance amount
|
||||||
|
while true; do
|
||||||
|
((telegram_bot_count == 1)) && local question="Install Telegram Bot?"
|
||||||
|
((telegram_bot_count > 1)) && local question="Install ${telegram_bot_count} Telegram Bot instances?"
|
||||||
|
read -p "${cyan}###### ${question} (Y/n):${white} " yn
|
||||||
|
case "${yn}" in
|
||||||
|
Y|y|Yes|yes|"")
|
||||||
|
select_msg "Yes"
|
||||||
|
break;;
|
||||||
|
N|n|No|no)
|
||||||
|
select_msg "No"
|
||||||
|
abort_msg "Exiting Telegram Bot setup ...\n"
|
||||||
|
return;;
|
||||||
|
*)
|
||||||
|
error_msg "Invalid Input!";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
### write existing klipper names into user_input array to use them as names for moonraker
|
||||||
|
if (( moonraker_count > 1 )); then
|
||||||
|
for name in "${moonraker_names[@]}"; do
|
||||||
|
user_input+=("${name}")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
((telegram_bot_count > 1)) && status_msg "Installing ${telegram_bot_count} Telegram Bot instances ..."
|
||||||
|
((telegram_bot_count == 1)) && status_msg "Installing Telegram Bot ..."
|
||||||
|
telegram_bot_setup "${user_input[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_telegram_bot_dependencies(){
|
||||||
|
local packages
|
||||||
|
local install_script="${MOONRAKER_TELEGRAM_BOT_DIR}/scripts/install.sh"
|
||||||
|
|
||||||
|
### read PKGLIST from official install script
|
||||||
|
status_msg "Reading dependencies..."
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
packages="$(grep "PKGLIST=" "${install_script}" | cut -d'"' -f2 | sed 's/\${PKGLIST}//g' | tr -d '\n')"
|
||||||
|
|
||||||
|
echo "${cyan}${packages}${white}" | tr '[:space:]' '\n'
|
||||||
|
read -r -a packages <<< "${packages}"
|
||||||
|
|
||||||
|
### Update system package info
|
||||||
|
status_msg "Updating lists of packages..."
|
||||||
|
sudo apt-get update --allow-releaseinfo-change
|
||||||
|
|
||||||
|
### Install required packages
|
||||||
|
status_msg "Installing packages..."
|
||||||
|
sudo apt-get install --yes "${packages[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_telegram_bot_virtualenv(){
|
||||||
|
status_msg "Installing python virtual environment..."
|
||||||
|
### always create a clean virtualenv
|
||||||
|
[[ -d ${MOONRAKER_TELEGRAM_BOT_ENV_DIR} ]] && rm -rf "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}"
|
||||||
|
virtualenv -p /usr/bin/python3 --system-site-packages "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}"
|
||||||
|
"${MOONRAKER_TELEGRAM_BOT_ENV_DIR}"/bin/pip install -r "${MOONRAKER_TELEGRAM_BOT_DIR}/scripts/requirements.txt"
|
||||||
}
|
}
|
||||||
|
|
||||||
function telegram_bot_setup(){
|
function telegram_bot_setup(){
|
||||||
local klipper_cfg_loc
|
local instance_arr=("${@}")
|
||||||
klipper_cfg_loc="$(get_klipper_cfg_dir)"
|
### checking dependencies
|
||||||
export klipper_cfg_loc
|
local dep=(git virtualenv)
|
||||||
local dep=(virtualenv)
|
|
||||||
dependency_check "${dep[@]}"
|
dependency_check "${dep[@]}"
|
||||||
|
|
||||||
|
### step 1: clone telegram bot
|
||||||
status_msg "Downloading Moonraker-Telegram-Bot ..."
|
status_msg "Downloading Moonraker-Telegram-Bot ..."
|
||||||
#force remove existing Moonraker-Telegram-Bot dir
|
### force remove existing Moonraker-Telegram-Bot dir
|
||||||
[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ] && rm -rf "${MOONRAKER_TELEGRAM_BOT_DIR}"
|
[[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ]] && rm -rf "${MOONRAKER_TELEGRAM_BOT_DIR}"
|
||||||
#clone into fresh Moonraker-Telegram-Bot dir
|
|
||||||
cd "${HOME}" && git clone "${MOONRAKER_TELEGRAM_BOT_REPO}"
|
cd "${HOME}" && git clone "${MOONRAKER_TELEGRAM_BOT_REPO}"
|
||||||
ok_msg "Download complete!"
|
|
||||||
status_msg "Installing Moonraker-Telegram-Bot ..."
|
### step 2: install telegram bot dependencies and create python virtualenv
|
||||||
/bin/bash "${MOONRAKER_TELEGRAM_BOT_DIR}/scripts/install.sh"
|
status_msg "Installing dependencies ..."
|
||||||
echo; ok_msg "Moonraker-Telegram-Bot successfully installed!"
|
install_telegram_bot_dependencies
|
||||||
|
create_telegram_bot_virtualenv
|
||||||
|
|
||||||
|
### step 3: create telegram.conf
|
||||||
|
create_telegram_conf "${instance_arr[@]}"
|
||||||
|
|
||||||
|
### step 4: create telegram bot instances
|
||||||
|
create_telegram_bot_service "${instance_arr[@]}"
|
||||||
|
|
||||||
|
### step 5: enable and start all instances
|
||||||
|
do_action_service "enable" "moonraker-telegram-bot"
|
||||||
|
do_action_service "start" "moonraker-telegram-bot"
|
||||||
|
|
||||||
|
### confirm message
|
||||||
|
local confirm=""
|
||||||
|
(( instance_arr[0] == 1)) && confirm="Telegram Bot has been set up!"
|
||||||
|
(( instance_arr[0] > 1)) && confirm="${instance_arr[0]} Telegram Bot instances have been set up!"
|
||||||
|
print_confirm "${confirm}" && return
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_telegram_conf(){
|
||||||
|
local input=("${@}")
|
||||||
|
local telegram_bot_count=${input[0]} && unset "input[0]"
|
||||||
|
local names=("${input[@]}") && unset "input[@]"
|
||||||
|
local log="${KLIPPER_LOGS}"
|
||||||
|
|
||||||
|
if (( telegram_bot_count == 1 )); then
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}"
|
||||||
|
cfg="${cfg_dir}/telegram.conf"
|
||||||
|
### write single instance config
|
||||||
|
write_telegram_conf "${cfg_dir}" "${cfg}" "${log}"
|
||||||
|
|
||||||
|
elif (( telegram_bot_count > 1 )); then
|
||||||
|
local j=0 re="^[1-9][0-9]*$"
|
||||||
|
|
||||||
|
for ((i=1; i <= telegram_bot_count; i++ )); do
|
||||||
|
### overwrite config folder if name is only a number
|
||||||
|
if [[ ${names[j]} =~ ${re} ]]; then
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}/printer_${names[${j}]}"
|
||||||
|
else
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}/${names[${j}]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
### write multi instance config
|
||||||
|
write_telegram_conf "${cfg_dir}" "${cfg}" "${log}"
|
||||||
|
port=$((port+1))
|
||||||
|
j=$((j+1))
|
||||||
|
done && unset j
|
||||||
|
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function write_telegram_conf(){
|
||||||
|
local cfg_dir=${1} cfg=${2} log=${3}
|
||||||
|
local conf_template="${MOONRAKER_TELEGRAM_BOT_DIR}/scripts/base_install_template"
|
||||||
|
! [[ -d "${cfg_dir}" ]] && mkdir -p "${cfg_dir}"
|
||||||
|
|
||||||
|
if ! [[ -f "${cfg}" ]]; then
|
||||||
|
status_msg "Creating telegram.conf in ${cfg_dir} ..."
|
||||||
|
cp "${conf_template}" "${cfg}"
|
||||||
|
sed -i "s|some_log_path|${log}|g" "${cfg}"
|
||||||
|
ok_msg "telegram.conf created!"
|
||||||
|
else
|
||||||
|
status_msg "File '${cfg}' already exists!\nSkipping..."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function create_telegram_bot_service(){
|
||||||
|
local input=("${@}")
|
||||||
|
local instances=${input[0]} && unset "input[0]"
|
||||||
|
local names=("${input[@]}") && unset "input[@]"
|
||||||
|
local cfg_dir cfg service
|
||||||
|
if (( instances == 1 )); then
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}"
|
||||||
|
cfg="${cfg_dir}/telegram.conf"
|
||||||
|
service="${SYSTEMD}/moonraker-telegram-bot.service"
|
||||||
|
### write single instance service
|
||||||
|
write_telegram_bot_service "" "${cfg}" "${service}"
|
||||||
|
ok_msg "Single Telegram Bot instance created!"
|
||||||
|
|
||||||
|
elif (( instances > 1 )); then
|
||||||
|
local j=0 re="^[1-9][0-9]*$"
|
||||||
|
|
||||||
|
for ((i=1; i <= instances; i++ )); do
|
||||||
|
|
||||||
|
### overwrite config folder if name is only a number
|
||||||
|
if [[ ${names[j]} =~ ${re} ]]; then
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}/printer_${names[${j}]}"
|
||||||
|
else
|
||||||
|
cfg_dir="${KLIPPER_CONFIG}/${names[${j}]}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cfg="${cfg_dir}/telegram.conf"
|
||||||
|
service="${SYSTEMD}/moonraker-telegram-bot-${names[${j}]}.service"
|
||||||
|
### write multi instance service
|
||||||
|
write_telegram_bot_service "${i}(${names[${j}]})" "${cfg}" "${service}"
|
||||||
|
ok_msg "Telegram Bot instance #${i}(${names[${j}]}) created!"
|
||||||
|
j=$((j+1))
|
||||||
|
|
||||||
|
done && unset j
|
||||||
|
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function write_telegram_bot_service(){
|
||||||
|
local i=${1} cfg=${2} service=${3}
|
||||||
|
local service_template="${SRCDIR}/kiauh/resources/moonraker-telegram-bot.service"
|
||||||
|
|
||||||
|
### replace all placeholders
|
||||||
|
if ! [[ -f "${service}" ]]; then
|
||||||
|
status_msg "Creating Telegram Bot Service ${i} ..."
|
||||||
|
sudo cp "${service_template}" "${service}"
|
||||||
|
[[ -z ${i} ]] && sudo sed -i "s|instance %INST% ||" "${service}"
|
||||||
|
[[ -n ${i} ]] && sudo sed -i "s|%INST%|${i}|" "${service}"
|
||||||
|
sudo sed -i "s|%USER%|${USER}|; s|%ENV%|${MOONRAKER_TELEGRAM_BOT_ENV_DIR}|; s|%DIR%|${MOONRAKER_TELEGRAM_BOT_DIR}|" "${service}"
|
||||||
|
sudo sed -i "s|%CFG%|${cfg}|" "${service}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -48,44 +278,52 @@ function telegram_bot_setup(){
|
|||||||
#=========== REMOVE MOONRAKERTELEGRAMBOT ===========#
|
#=========== REMOVE MOONRAKERTELEGRAMBOT ===========#
|
||||||
#===================================================#
|
#===================================================#
|
||||||
|
|
||||||
function remove_telegram_bot(){
|
function remove_telegram_bot_systemd() {
|
||||||
### remove Moonraker-Telegram-Bot dir
|
[[ -z "$(telegram_bot_systemd)" ]] && return
|
||||||
if [ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ]; then
|
status_msg "Removing Telegram Bot Systemd Services ..."
|
||||||
status_msg "Removing Moonraker-Telegram-Bot directory ..."
|
for service in $(telegram_bot_systemd | cut -d"/" -f5); do
|
||||||
rm -rf "${MOONRAKER_TELEGRAM_BOT_DIR}" && ok_msg "Directory removed!"
|
status_msg "Removing ${service} ..."
|
||||||
fi
|
sudo systemctl stop "${service}"
|
||||||
|
sudo systemctl disable "${service}"
|
||||||
|
sudo rm -f "${SYSTEMD}/${service}"
|
||||||
|
ok_msg "Done!"
|
||||||
|
done
|
||||||
|
### reloading units
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl reset-failed
|
||||||
|
ok_msg "Telegram Bot Services removed!"
|
||||||
|
}
|
||||||
|
|
||||||
### remove Moonraker-Telegram-Bot VENV dir
|
function remove_telegram_bot_dir() {
|
||||||
if [ -d "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}" ]; then
|
! [[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ]] && return
|
||||||
status_msg "Removing Moonraker-Telegram-Bot VENV directory ..."
|
status_msg "Removing Moonraker-Telegram-Bot directory ..."
|
||||||
rm -rf "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}" && ok_msg "Directory removed!"
|
rm -rf "${MOONRAKER_TELEGRAM_BOT_DIR}"
|
||||||
fi
|
ok_msg "Directory removed!"
|
||||||
|
}
|
||||||
|
|
||||||
### remove Moonraker-Telegram-Bot service
|
function remove_telegram_bot_env() {
|
||||||
if [ -e "${SYSTEMD}/moonraker-telegram-bot.service" ]; then
|
! [[ -d "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}" ]] && return
|
||||||
status_msg "Removing Moonraker-Telegram-Bot service ..."
|
status_msg "Removing moonraker-telegram-bot-env directory ..."
|
||||||
do_action_service "stop" "moonraker-telegram-bot"
|
rm -rf "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}"
|
||||||
do_action_service "disable" "moonraker-telegram-bot"
|
ok_msg "Directory removed!"
|
||||||
sudo rm -f "${SYSTEMD}/moonraker-telegram-bot.service"
|
}
|
||||||
###reloading units
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl reset-failed
|
|
||||||
ok_msg "Moonraker-Telegram-Bot Service removed!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
### remove Moonraker-Telegram-Bot log
|
function remove_telegram_bot_logs() {
|
||||||
if [ -e "/tmp/telegram.log" ] || [ -e "${HOME}/klipper_logs/telegram.log" ]; then
|
if [[ -f "/tmp/telegram.log"|| -f "${HOME}/klipper_logs/telegram.log" ]]; then
|
||||||
status_msg "Removing Moonraker-Telegram-Bot log file ..."
|
status_msg "Removing Moonraker-Telegram-Bot log file ..."
|
||||||
rm -f "/tmp/telegram.log" "${HOME}/klipper_logs/telegram.log" && ok_msg "File removed!"
|
rm -f "/tmp/telegram.log" "${HOME}/klipper_logs/telegram.log"
|
||||||
|
ok_msg "File removed!"
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
### remove Moonraker-Telegram-Bot log symlink in config dir
|
function remove_telegram_bot(){
|
||||||
if [ -e "${KLIPPER_CONFIG}/telegram.log" ]; then
|
remove_telegram_bot_systemd
|
||||||
status_msg "Removing Moonraker-Telegram-Bot log symlink ..."
|
remove_telegram_bot_dir
|
||||||
rm -f "${KLIPPER_CONFIG}/telegram.log" && ok_msg "File removed!"
|
remove_telegram_bot_env
|
||||||
fi
|
remove_telegram_bot_logs
|
||||||
|
|
||||||
print_confirm "Moonraker-Telegram-Bot successfully removed!"
|
local confirm="Moonraker-Telegram-Bot was successfully removed!"
|
||||||
|
print_confirm "${confirm}" && return
|
||||||
}
|
}
|
||||||
|
|
||||||
#===================================================#
|
#===================================================#
|
||||||
@@ -93,13 +331,21 @@ function remove_telegram_bot(){
|
|||||||
#===================================================#
|
#===================================================#
|
||||||
|
|
||||||
function update_telegram_bot(){
|
function update_telegram_bot(){
|
||||||
local klipper_cfg_loc
|
|
||||||
klipper_cfg_loc="$(get_klipper_cfg_dir)"
|
|
||||||
do_action_service "stop" "moonraker-telegram-bot"
|
do_action_service "stop" "moonraker-telegram-bot"
|
||||||
cd "${MOONRAKER_TELEGRAM_BOT_DIR}" && git pull
|
if ! [[ -d ${MOONRAKER_TELEGRAM_BOT_DIR} ]]; then
|
||||||
/bin/bash "./scripts/install.sh"
|
cd "${HOME}" && git clone "${MOONRAKER_TELEGRAM_BOT_REPO}"
|
||||||
do_action_service "start" "moonraker-telegram-bot"
|
else
|
||||||
|
backup_before_update "moonraker-telegram-bot"
|
||||||
|
status_msg "Updating Moonraker ..."
|
||||||
|
cd "${MOONRAKER_TELEGRAM_BOT_DIR}" && git pull
|
||||||
|
### read PKGLIST and install possible new dependencies
|
||||||
|
install_telegram_bot_dependencies
|
||||||
|
### install possible new python dependencies
|
||||||
|
"${MOONRAKER_TELEGRAM_BOT_ENV_DIR}"/bin/pip install -r "${MOONRAKER_TELEGRAM_BOT_DIR}/scripts/requirements.txt"
|
||||||
|
fi
|
||||||
|
|
||||||
ok_msg "Update complete!"
|
ok_msg "Update complete!"
|
||||||
|
do_action_service "start" "moonraker-telegram-bot"
|
||||||
}
|
}
|
||||||
|
|
||||||
#===================================================#
|
#===================================================#
|
||||||
@@ -112,16 +358,16 @@ function get_telegram_bot_status(){
|
|||||||
|
|
||||||
### remove the "SERVICE" entry from the data array if a moonraker service is installed
|
### remove the "SERVICE" entry from the data array if a moonraker service is installed
|
||||||
local data_arr=(SERVICE "${MOONRAKER_TELEGRAM_BOT_DIR}" "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}")
|
local data_arr=(SERVICE "${MOONRAKER_TELEGRAM_BOT_DIR}" "${MOONRAKER_TELEGRAM_BOT_ENV_DIR}")
|
||||||
[ "${sf_count}" -gt 0 ] && unset "data_arr[0]"
|
((sf_count > 0)) && unset "data_arr[0]"
|
||||||
|
|
||||||
### count+1 for each found data-item from array
|
### count+1 for each found data-item from array
|
||||||
local filecount=0
|
local filecount=0
|
||||||
for data in "${data_arr[@]}"; do
|
for data in "${data_arr[@]}"; do
|
||||||
[ -e "${data}" ] && filecount=$(("${filecount}" + 1))
|
[[ -e ${data} ]] && filecount=$((filecount + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
if (( filecount == ${#data_arr[*]})); then
|
if ((filecount == ${#data_arr[*]})); then
|
||||||
status="Installed!"
|
status="Installed: ${sf_count}"
|
||||||
elif ((filecount == 0)); then
|
elif ((filecount == 0)); then
|
||||||
status="Not installed!"
|
status="Not installed!"
|
||||||
else
|
else
|
||||||
@@ -132,7 +378,7 @@ function get_telegram_bot_status(){
|
|||||||
|
|
||||||
function get_local_telegram_bot_commit(){
|
function get_local_telegram_bot_commit(){
|
||||||
local commit
|
local commit
|
||||||
[ ! -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ] || [ ! -d "${MOONRAKER_TELEGRAM_BOT_DIR}"/.git ] && return
|
! [[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ]] || ! [[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}"/.git ]] && return
|
||||||
cd "${MOONRAKER_TELEGRAM_BOT_DIR}"
|
cd "${MOONRAKER_TELEGRAM_BOT_DIR}"
|
||||||
commit="$(git describe HEAD --always --tags | cut -d "-" -f 1,2)"
|
commit="$(git describe HEAD --always --tags | cut -d "-" -f 1,2)"
|
||||||
echo "${commit}"
|
echo "${commit}"
|
||||||
@@ -140,7 +386,7 @@ function get_local_telegram_bot_commit(){
|
|||||||
|
|
||||||
function get_remote_telegram_bot_commit(){
|
function get_remote_telegram_bot_commit(){
|
||||||
local commit
|
local commit
|
||||||
[ ! -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ] || [ ! -d "${MOONRAKER_TELEGRAM_BOT_DIR}"/.git ] && return
|
! [[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}" ]] || ! [[ -d "${MOONRAKER_TELEGRAM_BOT_DIR}"/.git ]] && return
|
||||||
cd "${MOONRAKER_TELEGRAM_BOT_DIR}" && git fetch origin -q
|
cd "${MOONRAKER_TELEGRAM_BOT_DIR}" && git fetch origin -q
|
||||||
commit=$(git describe origin/master --always --tags | cut -d "-" -f 1,2)
|
commit=$(git describe origin/master --always --tags | cut -d "-" -f 1,2)
|
||||||
echo "${commit}"
|
echo "${commit}"
|
||||||
@@ -151,7 +397,7 @@ function compare_telegram_bot_versions(){
|
|||||||
local versions local_ver remote_ver
|
local versions local_ver remote_ver
|
||||||
local_ver="$(get_local_telegram_bot_commit)"
|
local_ver="$(get_local_telegram_bot_commit)"
|
||||||
remote_ver="$(get_remote_telegram_bot_commit)"
|
remote_ver="$(get_remote_telegram_bot_commit)"
|
||||||
if [ "${local_ver}" != "${remote_ver}" ]; then
|
if [[ "${local_ver}" != "${remote_ver}" ]]; then
|
||||||
versions="${yellow}$(printf " %-14s" "${local_ver}")${white}"
|
versions="${yellow}$(printf " %-14s" "${local_ver}")${white}"
|
||||||
versions+="|${green}$(printf " %-13s" "${remote_ver}")${white}"
|
versions+="|${green}$(printf " %-13s" "${remote_ver}")${white}"
|
||||||
# add moonraker-telegram-bot to the update all array for the update all function in the updater
|
# add moonraker-telegram-bot to the update all array for the update all function in the updater
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ function install_menu(){
|
|||||||
7)
|
7)
|
||||||
do_action "install_pgc_for_klipper" "install_ui";;
|
do_action "install_pgc_for_klipper" "install_ui";;
|
||||||
8)
|
8)
|
||||||
do_action "install_telegram_bot" "install_ui";;
|
do_action "telegram_bot_setup_dialog" "install_ui";;
|
||||||
9)
|
9)
|
||||||
do_action "install_mjpg-streamer" "install_ui";;
|
do_action "install_mjpg-streamer" "install_ui";;
|
||||||
B|b)
|
B|b)
|
||||||
|
|||||||
Reference in New Issue
Block a user