Delete empty folders and leftover .pyc files on restart

This commit is contained in:
Ruud
2014-03-15 15:34:43 +01:00
parent f5aae23111
commit ee702d92e6
4 changed files with 31 additions and 24 deletions
+4
View File
@@ -51,6 +51,7 @@ class Core(Plugin):
addEvent('app.api_url', self.createApiUrl) addEvent('app.api_url', self.createApiUrl)
addEvent('app.version', self.version) addEvent('app.version', self.version)
addEvent('app.load', self.checkDataDir) addEvent('app.load', self.checkDataDir)
addEvent('app.load', self.cleanUpFolders)
addEvent('setting.save.core.password', self.md5Password) addEvent('setting.save.core.password', self.md5Password)
addEvent('setting.save.core.api_key', self.checkApikey) addEvent('setting.save.core.api_key', self.checkApikey)
@@ -75,6 +76,9 @@ class Core(Plugin):
return True return True
def cleanUpFolders(self):
self.deleteEmptyFolder(Env.get('app_dir'), show_error = False)
def available(self, **kwargs): def available(self, **kwargs):
return { return {
'success': True 'success': True
+6 -5
View File
@@ -142,6 +142,10 @@ class Updater(Plugin):
'success': success 'success': success
} }
def doShutdown(self):
self.updater.deletePyc(show_logs = False)
return super(Updater, self).doShutdown()
class BaseUpdater(Plugin): class BaseUpdater(Plugin):
@@ -176,7 +180,7 @@ class BaseUpdater(Plugin):
def check(self): def check(self):
pass pass
def deletePyc(self, only_excess = True): def deletePyc(self, only_excess = True, show_logs = True):
for root, dirs, files in scandir.walk(ss(Env.get('app_dir'))): for root, dirs, files in scandir.walk(ss(Env.get('app_dir'))):
@@ -186,7 +190,7 @@ class BaseUpdater(Plugin):
for excess_pyc_file in excess_pyc_files: for excess_pyc_file in excess_pyc_files:
full_path = os.path.join(root, excess_pyc_file) full_path = os.path.join(root, excess_pyc_file)
log.debug('Removing old PYC file: %s', full_path) if show_logs: log.debug('Removing old PYC file: %s', full_path)
try: try:
os.remove(full_path) os.remove(full_path)
except: except:
@@ -212,9 +216,6 @@ class GitUpdater(BaseUpdater):
log.info('Updating to latest version') log.info('Updating to latest version')
self.repo.pull() self.repo.pull()
# Delete leftover .pyc files
self.deletePyc()
return True return True
except: except:
log.error('Failed updating via GIT: %s', traceback.format_exc()) log.error('Failed updating via GIT: %s', traceback.format_exc())
+21
View File
@@ -17,6 +17,7 @@ from couchpotato.environment import Env
import requests import requests
from requests.packages.urllib3 import Timeout from requests.packages.urllib3 import Timeout
from requests.packages.urllib3.exceptions import MaxRetryError from requests.packages.urllib3.exceptions import MaxRetryError
from scandir import scandir
from tornado import template from tornado import template
from tornado.web import StaticFileHandler from tornado.web import StaticFileHandler
@@ -146,6 +147,26 @@ class Plugin(object):
return False return False
def deleteEmptyFolder(self, folder, show_error = True):
folder = sp(folder)
for root, dirs, files in scandir.walk(folder):
for dir_name in dirs:
full_path = os.path.join(root, dir_name)
if len(os.listdir(full_path)) == 0:
try:
os.rmdir(full_path)
except:
if show_error:
log.error('Couldn\'t remove empty directory %s: %s', (full_path, traceback.format_exc()))
try:
os.rmdir(folder)
except:
if show_error:
log.error('Couldn\'t remove empty directory %s: %s', (folder, traceback.format_exc()))
# http request # http request
def urlopen(self, url, timeout = 30, data = None, headers = None, files = None, show_error = True): def urlopen(self, url, timeout = 30, data = None, headers = None, files = None, show_error = True):
url = urllib2.quote(ss(url), safe = "%/:=&?~#+!$,;'@()*[]") url = urllib2.quote(ss(url), safe = "%/:=&?~#+!$,;'@()*[]")
-19
View File
@@ -823,25 +823,6 @@ Remove it if you want it to be renamed (again, or at least let it try again)
return string return string
def deleteEmptyFolder(self, folder, show_error = True):
folder = sp(folder)
loge = log.error if show_error else log.debug
for root, dirs, files in scandir.walk(folder):
for dir_name in dirs:
full_path = os.path.join(root, dir_name)
if len(os.listdir(full_path)) == 0:
try:
os.rmdir(full_path)
except:
loge('Couldn\'t remove empty directory %s: %s', (full_path, traceback.format_exc()))
try:
os.rmdir(folder)
except:
loge('Couldn\'t remove empty directory %s: %s', (folder, traceback.format_exc()))
def checkSnatched(self, fire_scan = True): def checkSnatched(self, fire_scan = True):
if self.checking_snatched: if self.checking_snatched: