diff --git a/ct/huntarr.sh b/ct/huntarr.sh index efc34566..140df40a 100644 --- a/ct/huntarr.sh +++ b/ct/huntarr.sh @@ -24,19 +24,20 @@ function update_script() { check_container_storage check_container_resources - if [[ ! -f /opt/${APP}/main.py ]]; then + if [[ ! -f /opt/huntarr/main.py ]]; then msg_error "No ${APP} Installation Found!" exit fi + setup_uv RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}') - if [[ -f /opt/${APP}_version.txt ]] && [[ "${RELEASE}" == "$(cat /opt/${APP}_version.txt)" ]]; then + if [[ ! -f ~/.${APP} || "${RELEASE}" != "$(cat ~/.${APP})" ]]; then msg_ok "No update required. ${APP} is already at ${RELEASE}" exit fi - msg_info "Stopping $APP" - systemctl stop ${APP} - msg_ok "Stopped $APP" + msg_info "Stopping huntarr service" + systemctl stop huntarr + msg_ok "Stopped huntarr service" msg_info "Creating Backup" if ls /opt/"${APP}"_backup_*.tar.gz &>/dev/null; then @@ -47,39 +48,15 @@ function update_script() { msg_ok "Backup Created" msg_info "Updating $APP to v${RELEASE}" - temp_file=$(mktemp) - curl -fsSL -o "$temp_file" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip" - unzip -q -o "$temp_file" -d /tmp - cp -rf "/tmp/Huntarr.io-${RELEASE}"/* /opt/"${APP}"/ - - msg_info "Updating Python dependencies" - cd /opt/"${APP}" || exit - if [[ -f "/opt/${APP}/.requirements_checksum" ]]; then - CURRENT_CHECKSUM=$(md5sum requirements.txt | awk '{print $1}') - STORED_CHECKSUM=$(cat .requirements_checksum) - if [[ "$CURRENT_CHECKSUM" != "$STORED_CHECKSUM" ]]; then - msg_info "Requirements have changed. Performing full upgrade." - $STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python - else - msg_info "Requirements unchanged. Verifying installation." - $STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python - fi - else - $STD uv pip install -r requirements.txt --python /opt/"${APP}"/venv/bin/python - fi - md5sum requirements.txt | awk '{print $1}' >.requirements_checksum - msg_ok "Updated Python dependencies" + fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" + cd /opt/huntarr + $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python + msg_ok "Updated $APP to v${RELEASE}" msg_info "Starting $APP" - systemctl start ${APP} + systemctl start hunarr msg_ok "Started $APP" - msg_info "Cleaning Up" - rm -f "$temp_file" - rm -rf "/tmp/Huntarr.io-${RELEASE}" - msg_ok "Cleanup Completed" - - echo "${RELEASE}" >/opt/"${APP}"_version.txt msg_ok "Updated $APP to v${RELEASE}" exit } diff --git a/install/huntarr-install.sh b/install/huntarr-install.sh index 5748642b..ee2a0b94 100644 --- a/install/huntarr-install.sh +++ b/install/huntarr-install.sh @@ -13,54 +13,37 @@ setting_up_container network_check update_os -APPLICATION="huntarr" -REPO_NAME="Huntarr.io" - msg_info "Installing Dependencies" $STD apt-get install -y jq msg_ok "Installed Dependencies" -msg_info "Installing Python" -$STD apt-get install -y \ - python3 \ - python3-venv -msg_ok "Installed Python" - -msg_info "Setup uv" setup_uv -msg_ok "Setup uv" msg_info "Setting Up Huntarr" -RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') -temp_file=$(mktemp) -$STD curl -fsSL -o "$temp_file" "https://github.com/plexguide/Huntarr.io/archive/refs/tags/${RELEASE}.zip" -$STD unzip -q "$temp_file" -$STD mv "${REPO_NAME}-${RELEASE}/" "/opt/${APPLICATION}" -echo "${RELEASE}" >/opt/${APPLICATION}_version.txt -$STD uv venv /opt/${APPLICATION}/venv -$STD uv pip install --python /opt/${APPLICATION}/venv/bin/python -r /opt/${APPLICATION}/requirements.txt -msg_ok "Setup Huntrarr Complete" +fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" +$STD uv venv /opt/huntarr/.venv +$STD uv pip install --python /opt/huntarr/.venv/bin/python -r /opt/huntarr/requirements.txt +msg_ok "Setup Huntrarr" msg_info "Creating Service" -cat </etc/systemd/system/${APPLICATION}.service +cat </etc/systemd/system/huntarr.service [Unit] Description=Huntarr Service After=network.target [Service] -WorkingDirectory=/opt/${APPLICATION} -ExecStart=/opt/${APPLICATION}/venv/bin/python /opt/${APPLICATION}/main.py +WorkingDirectory=/opt/huntarr +ExecStart=/opt/huntarr/.venv/bin/python /opt/huntarr/main.py Restart=always [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now ${APPLICATION} +systemctl enable -q --now huntarr msg_ok "Created Service" motd_ssh customize msg_info "Cleaning up" -rm -f "$temp_file" $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"