Merge branch 'release-11.7' into nightly

# Conflicts:
#	changelog.txt
#	core/versionCheck.py
#	nzbToMedia.py
This commit is contained in:
Lizband 2018-12-25 14:39:31 -05:00
commit d1edf9f2a2
6 changed files with 104 additions and 43 deletions

View file

@ -1,5 +1,9 @@
#!/usr/bin/env python2
# coding=utf-8
import cleanup
cleanup.clean('core', 'libs')
import datetime
import os
import sys

View file

@ -41,6 +41,15 @@ Delete invisible.cmd
Use args instead of Wscript.Arguments
V11.7 12/25/2018
Merry Christmas and Happy Holidays!
Add cleanup script to clean up bytecode
Add automatic cleanup on update
NOTE: Cleanup will force-run every time during a transitional period to minimize issues with upcoming refactoring
V11.06 11/03/2018
updates to incorporate importMode for NzbDrone/Sonarr and Radarr.

86
cleanup.py Normal file
View file

@ -0,0 +1,86 @@
from __future__ import print_function
import subprocess
import sys
def git_clean(remove_directories=False, force=False, dry_run=False, interactive=False, quiet=False, exclude=None,
ignore_rules=False, clean_ignored=False, paths=None):
"""Execute git clean commands."""
command = ['git', 'clean']
if remove_directories:
command.append('-d')
if force:
command.append('--force')
if interactive:
command.append('--interactive')
if quiet:
command.append('--quiet')
if dry_run:
command.append('--dry-run')
if exclude:
try:
exclude = exclude.split(' ')
except AttributeError:
pass
for exclusion in exclude:
command.append('--exclude={pattern}'.format(pattern=exclusion))
if ignore_rules:
command.append('-x')
if clean_ignored:
command.append('-X')
if paths:
try:
paths = paths.split(' ')
except AttributeError:
pass
command.extend(paths)
return subprocess.check_output(command)
def clean_bytecode():
"""Clean bytecode files."""
try:
result = git_clean(
remove_directories=True,
force=True,
exclude=[
'*.*', # exclude everything
'!*.py[co]', # except bytecode
'!**/__pycache__/', # and __pycache__ folders
],
)
except subprocess.CalledProcessError as error:
sys.exit(error.returncode)
else:
return result
def clean_folders(*paths):
"""Clean obsolete folders."""
try:
result = git_clean(
remove_directories=True,
force=True,
ignore_rules=True,
paths=paths,
)
except subprocess.CalledProcessError as error:
sys.exit(error.returncode)
else:
return result
def clean(*paths):
"""Clean up bytecode and obsolete folders."""
print('-- Cleaning bytecode --')
result = clean_bytecode()
print(result or 'No bytecode to clean\n')
if paths:
print('-- Cleaning folders: {} --'.format(paths))
result = clean_folders(*paths)
print(result or 'No folders to clean\n')
if __name__ == '__main__':
clean('libs', 'core')

View file

@ -13,6 +13,7 @@ import traceback
from six.moves.urllib.request import urlretrieve
import cleanup
import core
from core import github_api as github, logger
import libs.util
@ -81,23 +82,9 @@ class CheckVersion(object):
def update(self):
if self.updater.need_update():
result = self.updater.update()
self.clean()
cleanup.clean('core', 'libs')
return result
@staticmethod
def clean():
# Clean libs
result = libs.util.git_clean(
remove_directories=True,
force=True,
ignore_rules=True,
paths=[
libs.LIB_ROOT,
core.SOURCE_ROOT,
],
)
logger.debug(result)
class UpdateManager(object):
def get_github_repo_user(self):

View file

@ -59,31 +59,3 @@ def install_requirements(
args.append(path)
subprocess.call(args)
def git_clean(remove_directories=False, force=False, dry_run=False, interactive=False, quiet=False, exclude=None,
ignore_rules=False, clean_ignored=False, paths=None):
command = ['git', 'clean']
if remove_directories:
command.append('-d')
if force:
command.append('--force')
if interactive:
command.append('--interactive')
if quiet:
command.append('--quiet')
if dry_run:
command.append('--dry-run')
if exclude:
command.append('--exclude={pattern}'.format(pattern=exclude))
if ignore_rules:
command.append('-x')
if clean_ignored:
command.append('-X')
if paths:
try:
paths = paths.split(' ')
except AttributeError:
pass
command.extend(paths)
return subprocess.check_output(command)

View file

@ -623,6 +623,9 @@
from __future__ import print_function
import cleanup
cleanup.clean('core', 'libs')
import datetime
import os
import sys