From ff695fa4ea05242891bfdfee19cca7d12cba6ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Slavi=C5=A1a=20Are=C5=BEina?= <58952836+tremor021@users.noreply.github.com> Date: Fri, 1 Aug 2025 07:26:35 +0200 Subject: [PATCH] Refactor: MagicMirror (#6402) --- ct/magicmirror.sh | 31 ++++++++++++++----------------- install/magicmirror-install.sh | 14 ++++---------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/ct/magicmirror.sh b/ct/magicmirror.sh index 337a8a414..a9676834c 100644 --- a/ct/magicmirror.sh +++ b/ct/magicmirror.sh @@ -27,16 +27,17 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + if ! command -v jq &>/dev/null; then + $STD apt-get install -y jq + fi + + RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | jq -r '.tag_name' | sed 's/^v//') + if [[ ! -f ~/.magicmirror ]] || [[ "${RELEASE}" != "$(cat ~/.magicmirror)" ]]; then msg_info "Stopping Service" systemctl stop magicmirror msg_ok "Stopped Service" - msg_info "Updating ${APP} to v${RELEASE}" - $STD apt-get update - $STD apt-get upgrade -y + msg_info "Backing up data" rm -rf /opt/magicmirror-backup mkdir /opt/magicmirror-backup cp /opt/magicmirror/config/config.js /opt/magicmirror-backup @@ -44,27 +45,23 @@ function update_script() { cp /opt/magicmirror/css/custom.css /opt/magicmirror-backup fi cp -r /opt/magicmirror/modules /opt/magicmirror-backup - temp_file=$(mktemp) -curl -fsSL "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file"" - tar -xzf "$temp_file" - rm -rf /opt/magicmirror - mv MagicMirror-${RELEASE} /opt/magicmirror + msg_ok "Backed up data" + + fetch_and_deploy_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror" "tarball" + + msg_info "Configuring MagicMirror" cd /opt/magicmirror $STD npm run install-mm cp /opt/magicmirror-backup/config.js /opt/magicmirror/config/ if [[ -f /opt/magicmirror-backup/custom.css ]]; then cp /opt/magicmirror-backup/custom.css /opt/magicmirror/css/ fi - echo "${RELEASE}" >"/opt/${APP}_version.txt" - msg_ok "Updated ${APP} to v${RELEASE}" + msg_ok "Configured MagicMirror" msg_info "Starting Service" systemctl start magicmirror msg_ok "Started Service" - msg_info "Cleaning up" - rm -f $temp_file - msg_ok "Cleaned" msg_ok "Updated Successfully" else msg_ok "No update required. ${APP} is already at v${RELEASE}." @@ -79,4 +76,4 @@ description msg_ok "Completed Successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" \ No newline at end of file +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/install/magicmirror-install.sh b/install/magicmirror-install.sh index d4f21a008..5b8301c27 100644 --- a/install/magicmirror-install.sh +++ b/install/magicmirror-install.sh @@ -14,13 +14,9 @@ network_check update_os NODE_VERSION="22" setup_nodejs +fetch_and_deploy_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror" "tarball" -msg_info "Setup MagicMirror" -temp_file=$(mktemp) -RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file"" -tar -xzf "$temp_file" -mv MagicMirror-${RELEASE} /opt/magicmirror +msg_info "Configuring MagicMirror" cd /opt/magicmirror $STD npm run install-mm cat </opt/magicmirror/config/config.js @@ -112,8 +108,7 @@ let config = { /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;} EOF -echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" -msg_ok "Setup MagicMirror" +msg_ok "Configured MagicMirror" msg_info "Creating Service" cat </etc/systemd/system/magicmirror.service @@ -133,14 +128,13 @@ ExecStart=/usr/bin/npm run server [Install] WantedBy=multi-user.target EOF -systemctl enable --now magicmirror +systemctl enable -q --now magicmirror msg_ok "Created Service" motd_ssh customize msg_info "Cleaning up" -rm -rf $temp_file $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"