From 7348f063e52e3259236a467c5a6b1540f28f69b2 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Mon, 24 Oct 2022 12:55:35 +0200 Subject: [PATCH 01/10] refactor(telegram-bot): update telegram-bot installer Signed-off-by: Dominik Willner --- resources/moonraker-telegram-bot.env | 1 + resources/moonraker-telegram-bot.service | 12 +-- scripts/moonraker-telegram-bot.sh | 124 +++++++++++++++++------ scripts/ui/install_menu.sh | 5 +- 4 files changed, 99 insertions(+), 43 deletions(-) create mode 100644 resources/moonraker-telegram-bot.env diff --git a/resources/moonraker-telegram-bot.env b/resources/moonraker-telegram-bot.env new file mode 100644 index 0000000..aaa7547 --- /dev/null +++ b/resources/moonraker-telegram-bot.env @@ -0,0 +1 @@ +TELEGRAM_BOT_ARGS="/home/%USER%/moonraker-telegram-bot/bot/main.py -c %CFG% -l %LOG%" \ No newline at end of file diff --git a/resources/moonraker-telegram-bot.service b/resources/moonraker-telegram-bot.service index 3581f18..28cf88f 100644 --- a/resources/moonraker-telegram-bot.service +++ b/resources/moonraker-telegram-bot.service @@ -1,19 +1,17 @@ -#Systemd service file for Moonraker Telegram Bot - [Unit] -Description=Starts Moonraker Telegram Bot instance %INST% on startup +Description=Moonraker Telegram Bot SV1 %INST% Documentation=https://github.com/nlef/moonraker-telegram-bot/wiki -After=network.target +After=network-online.target [Install] WantedBy=multi-user.target [Service] -Environment=TELEGRAM_CONF=%CFG% -Environment=TELEGRAM_LOG=%LOG% Type=simple User=%USER% RemainAfterExit=yes -ExecStart=%ENV%/bin/python %DIR%/bot/main.py -c ${TELEGRAM_CONF} -l ${TELEGRAM_LOG} +WorkingDirectory=/home/%USER%/moonraker-telegram-bot +EnvironmentFile=%ENV_FILE% +ExecStart=%ENV%/bin/python $TELEGRAM_BOT_ARGS Restart=always RestartSec=10 \ No newline at end of file diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index d10c5e1..63da505 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -203,29 +203,40 @@ function create_telegram_conf() { local input=("${@}") local telegram_bot_count=${input[0]} && unset "input[0]" local names=("${input[@]}") && unset "input[@]" - local log="${KLIPPER_LOGS}" - local cfg cfg_dir + local printer_data log_dir cfg cfg_dir if (( telegram_bot_count == 1 )); then - cfg_dir="${KLIPPER_CONFIG}" + printer_data="${HOME}/printer_data" + log_dir="${printer_data}/logs" + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write single instance config - write_telegram_conf "${cfg_dir}" "${cfg}" "${log}" + write_telegram_conf "${cfg_dir}" "${cfg}" 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 + + printer_data="${HOME}/${names[${j}]}_data" + ### prefix instance name with "printer_" if it is only a number + [[ ${names[j]} =~ ${re} ]] && printer_data="${HOME}/printer_${names[${j}]}_data" + + + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" + log_dir="${printer_data}/logs" + + ### create required folder structure + create_required_folders "${printer_data}" ### write multi instance config - write_telegram_conf "${cfg_dir}" "${cfg}" "${log}" + write_telegram_conf "${cfg_dir}" "${cfg}" + j=$(( j + 1 )) done && unset j @@ -235,17 +246,15 @@ function create_telegram_conf() { } function write_telegram_conf() { - local cfg_dir=${1} cfg=${2} log=${3} + local cfg_dir=${1} cfg=${2} local conf_template="${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..." + ok_msg "File '${cfg}' already exists! Skipping..." fi } @@ -253,16 +262,22 @@ function create_telegram_bot_service() { local input=("${@}") local instances=${input[0]} && unset "input[0]" local names=("${input[@]}") && unset "input[@]" - local cfg_dir cfg log service + local printer_data cfg_dir cfg log service env_file if (( instances == 1 )); then - cfg_dir="${KLIPPER_CONFIG}" + printer_data="${HOME}/printer_data" + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" - log="${KLIPPER_LOGS}/telegram.log" + log="${printer_data}/logs/telegram.log" service="${SYSTEMD}/moonraker-telegram-bot.service" + env_file="${printer_data}/systemd/moonraker-telegram-bot.env" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write single instance service - write_telegram_bot_service "" "${cfg}" "${log}" "${service}" - ok_msg "Single Telegram Bot instance created!" + write_telegram_bot_service "" "${cfg}" "${log}" "${service}" "${env_file}" + ok_msg "Telegram Bot instance created!" elif (( instances > 1 )); then local j=0 re="^[1-9][0-9]*$" @@ -270,17 +285,27 @@ function create_telegram_bot_service() { 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}]}" + printer_data="${HOME}/printer_${names[${j}]}_data" else - cfg_dir="${KLIPPER_CONFIG}/${names[${j}]}" + printer_data="${HOME}/${names[${j}]}_data" fi + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" - log="${KLIPPER_LOGS}/telegram-${names[${j}]}.log" + log="${printer_data}/logs/telegram.log" service="${SYSTEMD}/moonraker-telegram-bot-${names[${j}]}.service" + env_file="${printer_data}/systemd/moonraker-telegram-bot.env" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write multi instance service - write_telegram_bot_service "${names[${j}]}" "${cfg}" "${log}" "${service}" - ok_msg "Telegram Bot instance moonraker-telegram-bot-${names[${j}]} created!" + if write_telegram_bot_service "${names[${j}]}" "${cfg}" "${log}" "${service}" "${env_file}"; then + ok_msg "Telegram Bot instance moonraker-telegram-bot-${names[${j}]} created!" + else + error_msg "An error occured during creation of instance moonraker-telegram-bot-${names[${j}]}!" + fi + j=$(( j + 1 )) done && unset j @@ -290,17 +315,24 @@ function create_telegram_bot_service() { } function write_telegram_bot_service() { - local i=${1} cfg=${2} log=${3} service=${4} + local i=${1} cfg=${2} log=${3} service=${4} env_file=${5} local service_template="${KIAUH_SRCDIR}/resources/moonraker-telegram-bot.service" + local env_template="${KIAUH_SRCDIR}/resources/moonraker-telegram-bot.env" ### replace all placeholders if [[ ! -f ${service} ]]; then - status_msg "Creating Telegram Bot Service ${i} ..." + status_msg "Creating service file for instance ${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%|${TELEGRAM_BOT_ENV}|; s|%DIR%|${TELEGRAM_BOT_DIR}|" "${service}" - sudo sed -i "s|%CFG%|${cfg}|; s|%LOG%|${log}|" "${service}" + if [[ -z ${i} ]]; then + sudo sed -i "s| %INST%||" "${service}" + else + sudo sed -i "s|%INST%|${i}|" "${service}" + fi + sudo sed -i "s|%USER%|${USER}|g; s|%ENV%|${TELEGRAM_BOT_ENV}|; s|%ENV_FILE%|${env_file}|" "${service}" + + status_msg "Creating environment file for instance ${i} ..." + cp "${env_template}" "${env_file}" + sed -i "s|%USER%|${USER}|; s|%CFG%|${cfg}|; s|%LOG%|${log}|" "${env_file}" fi } @@ -343,9 +375,35 @@ function remove_telegram_bot_env() { ok_msg "Directory removed!" } +function remove_telegram_bot_env_file() { + local files regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/systemd\/moonraker-telegram-bot\.env" + files=$(find "${HOME}" -maxdepth 3 -regextype posix-extended -regex "${regex}" | sort) + + if [[ -n ${files} ]]; then + for file in ${files}; do + status_msg "Removing ${file} ..." + rm -f "${file}" + ok_msg "${file} removed!" + done + fi +} + function remove_telegram_bot_logs() { + local files regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/logs\/telegram\.log.*" + files=$(find "${HOME}" -maxdepth 3 -regextype posix-extended -regex "${regex}" | sort) + + if [[ -n ${files} ]]; then + for file in ${files}; do + status_msg "Removing ${file} ..." + rm -f "${file}" + ok_msg "${file} removed!" + done + fi +} + +function remove_legacy_telegram_bot_logs() { local files regex="telegram(-[0-9a-zA-Z]+)?\.log(.*)?" - files=$(find "${KLIPPER_LOGS}" -maxdepth 1 -regextype posix-extended -regex "${KLIPPER_LOGS}/${regex}" | sort) + files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" | sort) if [[ -n ${files} ]]; then for file in ${files}; do @@ -360,7 +418,9 @@ function remove_telegram_bot() { remove_telegram_bot_systemd remove_telegram_bot_dir remove_telegram_bot_env + remove_telegram_bot_env_file remove_telegram_bot_logs + remove_legacy_telegram_bot_logs local confirm="Moonraker-Telegram-Bot was successfully removed!" print_confirm "${confirm}" && return diff --git a/scripts/ui/install_menu.sh b/scripts/ui/install_menu.sh index 6b81bd9..cfd5c3c 100755 --- a/scripts/ui/install_menu.sh +++ b/scripts/ui/install_menu.sh @@ -67,10 +67,7 @@ function install_menu() { print_error "Function currently disabled! Sorry!" install_ui;; 8) - #do_action "telegram_bot_setup_dialog" "install_ui";; - clear && print_header - print_error "Function currently disabled! Sorry!" - install_ui;; + do_action "telegram_bot_setup_dialog" "install_ui";; 9) #do_action "moonraker_obico_setup_dialog" "install_ui";; clear && print_header -- 2.39.5 From cb3661b8b56c09cb7277148a84b53fd628f185e9 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Tue, 25 Oct 2022 15:23:57 +0200 Subject: [PATCH 02/10] refactor(prettygcode): re-enable pretty gcode installer Signed-off-by: Dominik Willner --- scripts/ui/install_menu.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/ui/install_menu.sh b/scripts/ui/install_menu.sh index 6b81bd9..7ae4ec5 100755 --- a/scripts/ui/install_menu.sh +++ b/scripts/ui/install_menu.sh @@ -62,10 +62,7 @@ function install_menu() { 6) do_action "octoprint_setup_dialog" "install_ui";; 7) - #do_action "install_pgc_for_klipper" "install_ui";; - clear && print_header - print_error "Function currently disabled! Sorry!" - install_ui;; + do_action "install_pgc_for_klipper" "install_ui";; 8) #do_action "telegram_bot_setup_dialog" "install_ui";; clear && print_header -- 2.39.5 From 5524a40f042d3ab457a01a18f9f614aea54ad372 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Tue, 25 Oct 2022 15:24:25 +0200 Subject: [PATCH 03/10] refactor(klipperscreen): re-enable klipperscreen installer Signed-off-by: Dominik Willner --- scripts/ui/install_menu.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/ui/install_menu.sh b/scripts/ui/install_menu.sh index 7ae4ec5..ac9a5e6 100755 --- a/scripts/ui/install_menu.sh +++ b/scripts/ui/install_menu.sh @@ -55,10 +55,7 @@ function install_menu() { 4) do_action "install_fluidd" "install_ui";; 5) - #do_action "install_klipperscreen" "install_ui";; - clear && print_header - print_error "Function currently disabled! Sorry!" - install_ui;; + do_action "install_klipperscreen" "install_ui";; 6) do_action "octoprint_setup_dialog" "install_ui";; 7) -- 2.39.5 From b9bf554e4a22cfc0cb045a394a1196e608c11c55 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 16:09:17 +0100 Subject: [PATCH 04/10] fix(telegram-bot): fix update manager patcher Signed-off-by: Dominik Willner --- scripts/moonraker-telegram-bot.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index 63da505..621620d 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -518,9 +518,9 @@ function compare_telegram_bot_versions() { #================================================# function patch_telegram_bot_update_manager() { - local patched="false" - local moonraker_configs - moonraker_configs=$(find "${KLIPPER_CONFIG}" -type f -name "moonraker.conf" | sort) + local patched moonraker_configs regex + regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf" + moonraker_configs=$(find "${HOME}" -maxdepth 3 -type f -regextype posix-extended -regex "${regex}" | sort) for conf in ${moonraker_configs}; do if ! grep -Eq "^\[update_manager moonraker-telegram-bot\]$" "${conf}"; then -- 2.39.5 From b3ca09ff0a3748561d782768d3c026221887f0d0 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 16:13:09 +0100 Subject: [PATCH 05/10] fix(telegram-bot): silence logs not found Signed-off-by: Dominik Willner --- scripts/moonraker-telegram-bot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index 621620d..eeec94a 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -403,7 +403,7 @@ function remove_telegram_bot_logs() { function remove_legacy_telegram_bot_logs() { local files regex="telegram(-[0-9a-zA-Z]+)?\.log(.*)?" - files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" | sort) + files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" 2> /dev/null | sort) if [[ -n ${files} ]]; then for file in ${files}; do -- 2.39.5 From 6e7035328b492ad4cd0e8e9c52e9d01a3b8c4577 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Mon, 24 Oct 2022 12:55:35 +0200 Subject: [PATCH 06/10] refactor(telegram-bot): update telegram-bot installer Signed-off-by: Dominik Willner --- resources/moonraker-telegram-bot.env | 1 + resources/moonraker-telegram-bot.service | 12 +-- scripts/moonraker-telegram-bot.sh | 124 +++++++++++++++++------ scripts/ui/install_menu.sh | 5 +- 4 files changed, 99 insertions(+), 43 deletions(-) create mode 100644 resources/moonraker-telegram-bot.env diff --git a/resources/moonraker-telegram-bot.env b/resources/moonraker-telegram-bot.env new file mode 100644 index 0000000..aaa7547 --- /dev/null +++ b/resources/moonraker-telegram-bot.env @@ -0,0 +1 @@ +TELEGRAM_BOT_ARGS="/home/%USER%/moonraker-telegram-bot/bot/main.py -c %CFG% -l %LOG%" \ No newline at end of file diff --git a/resources/moonraker-telegram-bot.service b/resources/moonraker-telegram-bot.service index 3581f18..28cf88f 100644 --- a/resources/moonraker-telegram-bot.service +++ b/resources/moonraker-telegram-bot.service @@ -1,19 +1,17 @@ -#Systemd service file for Moonraker Telegram Bot - [Unit] -Description=Starts Moonraker Telegram Bot instance %INST% on startup +Description=Moonraker Telegram Bot SV1 %INST% Documentation=https://github.com/nlef/moonraker-telegram-bot/wiki -After=network.target +After=network-online.target [Install] WantedBy=multi-user.target [Service] -Environment=TELEGRAM_CONF=%CFG% -Environment=TELEGRAM_LOG=%LOG% Type=simple User=%USER% RemainAfterExit=yes -ExecStart=%ENV%/bin/python %DIR%/bot/main.py -c ${TELEGRAM_CONF} -l ${TELEGRAM_LOG} +WorkingDirectory=/home/%USER%/moonraker-telegram-bot +EnvironmentFile=%ENV_FILE% +ExecStart=%ENV%/bin/python $TELEGRAM_BOT_ARGS Restart=always RestartSec=10 \ No newline at end of file diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index d10c5e1..63da505 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -203,29 +203,40 @@ function create_telegram_conf() { local input=("${@}") local telegram_bot_count=${input[0]} && unset "input[0]" local names=("${input[@]}") && unset "input[@]" - local log="${KLIPPER_LOGS}" - local cfg cfg_dir + local printer_data log_dir cfg cfg_dir if (( telegram_bot_count == 1 )); then - cfg_dir="${KLIPPER_CONFIG}" + printer_data="${HOME}/printer_data" + log_dir="${printer_data}/logs" + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write single instance config - write_telegram_conf "${cfg_dir}" "${cfg}" "${log}" + write_telegram_conf "${cfg_dir}" "${cfg}" 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 + + printer_data="${HOME}/${names[${j}]}_data" + ### prefix instance name with "printer_" if it is only a number + [[ ${names[j]} =~ ${re} ]] && printer_data="${HOME}/printer_${names[${j}]}_data" + + + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" + log_dir="${printer_data}/logs" + + ### create required folder structure + create_required_folders "${printer_data}" ### write multi instance config - write_telegram_conf "${cfg_dir}" "${cfg}" "${log}" + write_telegram_conf "${cfg_dir}" "${cfg}" + j=$(( j + 1 )) done && unset j @@ -235,17 +246,15 @@ function create_telegram_conf() { } function write_telegram_conf() { - local cfg_dir=${1} cfg=${2} log=${3} + local cfg_dir=${1} cfg=${2} local conf_template="${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..." + ok_msg "File '${cfg}' already exists! Skipping..." fi } @@ -253,16 +262,22 @@ function create_telegram_bot_service() { local input=("${@}") local instances=${input[0]} && unset "input[0]" local names=("${input[@]}") && unset "input[@]" - local cfg_dir cfg log service + local printer_data cfg_dir cfg log service env_file if (( instances == 1 )); then - cfg_dir="${KLIPPER_CONFIG}" + printer_data="${HOME}/printer_data" + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" - log="${KLIPPER_LOGS}/telegram.log" + log="${printer_data}/logs/telegram.log" service="${SYSTEMD}/moonraker-telegram-bot.service" + env_file="${printer_data}/systemd/moonraker-telegram-bot.env" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write single instance service - write_telegram_bot_service "" "${cfg}" "${log}" "${service}" - ok_msg "Single Telegram Bot instance created!" + write_telegram_bot_service "" "${cfg}" "${log}" "${service}" "${env_file}" + ok_msg "Telegram Bot instance created!" elif (( instances > 1 )); then local j=0 re="^[1-9][0-9]*$" @@ -270,17 +285,27 @@ function create_telegram_bot_service() { 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}]}" + printer_data="${HOME}/printer_${names[${j}]}_data" else - cfg_dir="${KLIPPER_CONFIG}/${names[${j}]}" + printer_data="${HOME}/${names[${j}]}_data" fi + cfg_dir="${printer_data}/config" cfg="${cfg_dir}/telegram.conf" - log="${KLIPPER_LOGS}/telegram-${names[${j}]}.log" + log="${printer_data}/logs/telegram.log" service="${SYSTEMD}/moonraker-telegram-bot-${names[${j}]}.service" + env_file="${printer_data}/systemd/moonraker-telegram-bot.env" + + ### create required folder structure + create_required_folders "${printer_data}" + ### write multi instance service - write_telegram_bot_service "${names[${j}]}" "${cfg}" "${log}" "${service}" - ok_msg "Telegram Bot instance moonraker-telegram-bot-${names[${j}]} created!" + if write_telegram_bot_service "${names[${j}]}" "${cfg}" "${log}" "${service}" "${env_file}"; then + ok_msg "Telegram Bot instance moonraker-telegram-bot-${names[${j}]} created!" + else + error_msg "An error occured during creation of instance moonraker-telegram-bot-${names[${j}]}!" + fi + j=$(( j + 1 )) done && unset j @@ -290,17 +315,24 @@ function create_telegram_bot_service() { } function write_telegram_bot_service() { - local i=${1} cfg=${2} log=${3} service=${4} + local i=${1} cfg=${2} log=${3} service=${4} env_file=${5} local service_template="${KIAUH_SRCDIR}/resources/moonraker-telegram-bot.service" + local env_template="${KIAUH_SRCDIR}/resources/moonraker-telegram-bot.env" ### replace all placeholders if [[ ! -f ${service} ]]; then - status_msg "Creating Telegram Bot Service ${i} ..." + status_msg "Creating service file for instance ${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%|${TELEGRAM_BOT_ENV}|; s|%DIR%|${TELEGRAM_BOT_DIR}|" "${service}" - sudo sed -i "s|%CFG%|${cfg}|; s|%LOG%|${log}|" "${service}" + if [[ -z ${i} ]]; then + sudo sed -i "s| %INST%||" "${service}" + else + sudo sed -i "s|%INST%|${i}|" "${service}" + fi + sudo sed -i "s|%USER%|${USER}|g; s|%ENV%|${TELEGRAM_BOT_ENV}|; s|%ENV_FILE%|${env_file}|" "${service}" + + status_msg "Creating environment file for instance ${i} ..." + cp "${env_template}" "${env_file}" + sed -i "s|%USER%|${USER}|; s|%CFG%|${cfg}|; s|%LOG%|${log}|" "${env_file}" fi } @@ -343,9 +375,35 @@ function remove_telegram_bot_env() { ok_msg "Directory removed!" } +function remove_telegram_bot_env_file() { + local files regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/systemd\/moonraker-telegram-bot\.env" + files=$(find "${HOME}" -maxdepth 3 -regextype posix-extended -regex "${regex}" | sort) + + if [[ -n ${files} ]]; then + for file in ${files}; do + status_msg "Removing ${file} ..." + rm -f "${file}" + ok_msg "${file} removed!" + done + fi +} + function remove_telegram_bot_logs() { + local files regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/logs\/telegram\.log.*" + files=$(find "${HOME}" -maxdepth 3 -regextype posix-extended -regex "${regex}" | sort) + + if [[ -n ${files} ]]; then + for file in ${files}; do + status_msg "Removing ${file} ..." + rm -f "${file}" + ok_msg "${file} removed!" + done + fi +} + +function remove_legacy_telegram_bot_logs() { local files regex="telegram(-[0-9a-zA-Z]+)?\.log(.*)?" - files=$(find "${KLIPPER_LOGS}" -maxdepth 1 -regextype posix-extended -regex "${KLIPPER_LOGS}/${regex}" | sort) + files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" | sort) if [[ -n ${files} ]]; then for file in ${files}; do @@ -360,7 +418,9 @@ function remove_telegram_bot() { remove_telegram_bot_systemd remove_telegram_bot_dir remove_telegram_bot_env + remove_telegram_bot_env_file remove_telegram_bot_logs + remove_legacy_telegram_bot_logs local confirm="Moonraker-Telegram-Bot was successfully removed!" print_confirm "${confirm}" && return diff --git a/scripts/ui/install_menu.sh b/scripts/ui/install_menu.sh index ac9a5e6..918bda2 100755 --- a/scripts/ui/install_menu.sh +++ b/scripts/ui/install_menu.sh @@ -61,10 +61,7 @@ function install_menu() { 7) do_action "install_pgc_for_klipper" "install_ui";; 8) - #do_action "telegram_bot_setup_dialog" "install_ui";; - clear && print_header - print_error "Function currently disabled! Sorry!" - install_ui;; + do_action "telegram_bot_setup_dialog" "install_ui";; 9) #do_action "moonraker_obico_setup_dialog" "install_ui";; clear && print_header -- 2.39.5 From 4bb4405157ebd1e1b7bf5c5b6123a0014f45cbc1 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 16:09:17 +0100 Subject: [PATCH 07/10] fix(telegram-bot): fix update manager patcher Signed-off-by: Dominik Willner --- scripts/moonraker-telegram-bot.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index 63da505..621620d 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -518,9 +518,9 @@ function compare_telegram_bot_versions() { #================================================# function patch_telegram_bot_update_manager() { - local patched="false" - local moonraker_configs - moonraker_configs=$(find "${KLIPPER_CONFIG}" -type f -name "moonraker.conf" | sort) + local patched moonraker_configs regex + regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf" + moonraker_configs=$(find "${HOME}" -maxdepth 3 -type f -regextype posix-extended -regex "${regex}" | sort) for conf in ${moonraker_configs}; do if ! grep -Eq "^\[update_manager moonraker-telegram-bot\]$" "${conf}"; then -- 2.39.5 From 24a238ae508ef88b913b24dd55e6ceddd8f9684a Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 16:13:09 +0100 Subject: [PATCH 08/10] fix(telegram-bot): silence logs not found Signed-off-by: Dominik Willner --- scripts/moonraker-telegram-bot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index 621620d..eeec94a 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -403,7 +403,7 @@ function remove_telegram_bot_logs() { function remove_legacy_telegram_bot_logs() { local files regex="telegram(-[0-9a-zA-Z]+)?\.log(.*)?" - files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" | sort) + files=$(find "${HOME}/klipper_logs" -maxdepth 1 -regextype posix-extended -regex "${HOME}/klipper_logs/${regex}" 2> /dev/null | sort) if [[ -n ${files} ]]; then for file in ${files}; do -- 2.39.5 From 1edc1f0169574635b76c002becb0f45a8f8335e9 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 18:10:25 +0100 Subject: [PATCH 09/10] fix(telegram-bot): allow for any amount of whitespaces after config section in update manager Signed-off-by: Dominik Willner --- scripts/moonraker-telegram-bot.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/moonraker-telegram-bot.sh b/scripts/moonraker-telegram-bot.sh index eeec94a..423e8a3 100644 --- a/scripts/moonraker-telegram-bot.sh +++ b/scripts/moonraker-telegram-bot.sh @@ -522,8 +522,9 @@ function patch_telegram_bot_update_manager() { regex="\/home\/${USER}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf" moonraker_configs=$(find "${HOME}" -maxdepth 3 -type f -regextype posix-extended -regex "${regex}" | sort) + patched="false" for conf in ${moonraker_configs}; do - if ! grep -Eq "^\[update_manager moonraker-telegram-bot\]$" "${conf}"; then + if ! grep -Eq "^\[update_manager moonraker-telegram-bot\]\s*$" "${conf}"; then ### add new line to conf if it doesn't end with one [[ $(tail -c1 "${conf}" | wc -l) -eq 0 ]] && echo "" >> "${conf}" -- 2.39.5 From dc9f08ca5015e97227838ec5ce1f411256a02683 Mon Sep 17 00:00:00 2001 From: th33xitus Date: Sun, 30 Oct 2022 18:30:01 +0100 Subject: [PATCH 10/10] changelog: update changelog Signed-off-by: Dominik Willner --- docs/changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index b255c40..765f92f 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -2,6 +2,13 @@ This document covers possible important changes to KIAUH. +### 2022-10-30 +Some functions got updated, though not all of them. + +The following functions are still currently unavailable: +- Installation of: Obico, MJPG-Streamer +- All backup functions and the Log-Upload + ### 2022-10-20 KIAUH has now reached major version 5 ! -- 2.39.5