From 39fe8e84778edf67d092a149e3c656d7ebd3179b Mon Sep 17 00:00:00 2001 From: echel0n Date: Wed, 30 Jul 2014 17:19:44 -0700 Subject: [PATCH] More fixes for checkout/updating issues. --- sickbeard/__init__.py | 3 +-- sickbeard/common.py | 6 +----- sickbeard/versionChecker.py | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index e1399e7b..81b037aa 100755 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -49,7 +49,6 @@ from sickbeard.common import SD, SKIPPED, NAMING_REPEAT from sickbeard.databases import mainDB, cache_db, failed_db from lib.configobj import ConfigObj -import xml.etree.ElementTree as ElementTree PID = None @@ -102,7 +101,7 @@ VERSION_NOTIFY = False AUTO_UPDATE = False NOTIFY_ON_UPDATE = False CUR_COMMIT_HASH = None -BRANCH = None +BRANCH = '' INIT_LOCK = Lock() started = False diff --git a/sickbeard/common.py b/sickbeard/common.py index 3ca2f452..ca945555 100644 --- a/sickbeard/common.py +++ b/sickbeard/common.py @@ -22,12 +22,8 @@ import platform import re import uuid -from sickbeard import version - INSTANCE_ID = str(uuid.uuid1()) -USER_AGENT = ('SickRage/' + version.SICKBEARD_VERSION.replace(' ', '-') + - ' (' + platform.system() + '; ' + platform.release() + - '; ' + INSTANCE_ID + ')') +USER_AGENT = ('SickRage/(' + platform.system() + '; ' + platform.release() + '; ' + INSTANCE_ID + ')') mediaExtensions = ['avi', 'mkv', 'mpg', 'mpeg', 'wmv', 'ogm', 'mp4', 'iso', 'img', 'divx', diff --git a/sickbeard/versionChecker.py b/sickbeard/versionChecker.py index 8a93f3f8..f2789168 100644 --- a/sickbeard/versionChecker.py +++ b/sickbeard/versionChecker.py @@ -37,6 +37,7 @@ from sickbeard import encodingKludge as ek from subprocess import check_output, PIPE, Popen + class CheckVersion(): """ Version check class meant to run as a thread object with the sr scheduler. @@ -115,7 +116,11 @@ class CheckVersion(): return True def update(self): - if self.updater.need_update() or self.updater.branch != sickbeard.BRANCH: + # update branch with current config branch value + self.updater.branch == sickbeard.BRANCH + + # check for updates + if self.updater.need_update(): return self.updater.update() def list_remote_branches(self): @@ -124,6 +129,7 @@ class CheckVersion(): def get_branch(self): return self.updater.branch + class UpdateManager(): def get_github_repo_user(self): return 'echel0n' @@ -134,6 +140,7 @@ class UpdateManager(): def get_update_url(self): return sickbeard.WEB_ROOT + "/home/update/?pid=" + str(sickbeard.PID) + class WindowsUpdateManager(UpdateManager): def __init__(self): self.github_repo_user = self.get_github_repo_user() @@ -189,11 +196,14 @@ class WindowsUpdateManager(UpdateManager): return int(match.group(1)) def need_update(self): + if self.branch != self._find_installed_branch(): + logger.log(u"Branch checkout: " + self._find_installed_branch() + "->" + self.branch, logger.DEBUG) + return True + self._cur_version = self._find_installed_version() self._newest_version = self._find_newest_version() logger.log(u"newest version: " + repr(self._newest_version), logger.DEBUG) - if self._newest_version and self._newest_version > self._cur_version: return True @@ -269,7 +279,7 @@ class WindowsUpdateManager(UpdateManager): new_update_path = os.path.join(sickbeard.PROG_DIR, u'updater.exe') logger.log(u"Copying new update.exe file from " + old_update_path + " to " + new_update_path) shutil.move(old_update_path, new_update_path) - + # Notify update successful notifiers.notify_git_update(sickbeard.NEWEST_VERSION_STRING) @@ -282,6 +292,7 @@ class WindowsUpdateManager(UpdateManager): def list_remote_branches(self): return ['windows_binaries'] + class GitUpdateManager(UpdateManager): def __init__(self): self._git_path = self._find_working_git() @@ -500,8 +511,12 @@ class GitUpdateManager(UpdateManager): sickbeard.NEWEST_VERSION_STRING = newest_text def need_update(self): - self._find_installed_version() + if self.branch != self._find_installed_branch(): + logger.log(u"Branch checkout: " + self._find_installed_branch() + "->" + self.branch, logger.DEBUG) + return True + + self._find_installed_version() if not self._cur_commit_hash: return True else: @@ -522,7 +537,7 @@ class GitUpdateManager(UpdateManager): on the call's success. """ - if sickbeard.BRANCH == self._find_installed_branch(): + if self.branch == self._find_installed_branch(): output, err, exit_status = self._run_git(self._git_path, 'pull -f origin ' + self.branch) # @UnusedVariable else: output, err, exit_status = self._run_git(self._git_path, 'checkout -f ' + self.branch) # @UnusedVariable @@ -541,6 +556,7 @@ class GitUpdateManager(UpdateManager): return re.findall('\S+\Wrefs/heads/(.*)', branches) return [] + class SourceUpdateManager(UpdateManager): def __init__(self): self.github_repo_user = self.get_github_repo_user() @@ -570,6 +586,10 @@ class SourceUpdateManager(UpdateManager): def need_update(self): + if self.branch != self._find_installed_branch(): + logger.log(u"Branch checkout: " + self._find_installed_branch() + "->" + self.branch, logger.DEBUG) + return True + self._find_installed_version() try: @@ -710,8 +730,8 @@ class SourceUpdateManager(UpdateManager): old_path = os.path.join(content_dir, dirname, curfile) new_path = os.path.join(sickbeard.PROG_DIR, dirname, curfile) - #Avoid DLL access problem on WIN32/64 - #These files needing to be updated manually + # Avoid DLL access problem on WIN32/64 + # These files needing to be updated manually #or find a way to kill the access from memory if curfile in ('unrar.dll', 'unrar64.dll'): try: @@ -733,7 +753,7 @@ class SourceUpdateManager(UpdateManager): # Notify update successful notifiers.notify_git_update(sickbeard.NEWEST_VERSION_STRING) - + return True def list_remote_branches(self):