mirror of
https://github.com/SickGear/SickGear.git
synced 2024-11-30 16:33:37 +00:00
90 lines
3.5 KiB
Python
90 lines
3.5 KiB
Python
# remove this file when no longer needed
|
|
|
|
import os
|
|
import shutil
|
|
|
|
parent_dir = os.path.abspath(os.path.dirname(__file__))
|
|
cleaned_file = os.path.abspath(os.path.join(parent_dir, '.cleaned002.tmp'))
|
|
test = os.path.abspath(os.path.join(parent_dir, 'lib', 'hachoir_core'))
|
|
if not os.path.isfile(cleaned_file) or os.path.exists(test):
|
|
dead_dirs = [os.path.abspath(os.path.join(parent_dir, *d)) for d in [
|
|
('.cleaned.tmp',),
|
|
('tornado',),
|
|
('lib', 'feedcache'),
|
|
('lib', 'hachoir_core'), ('lib', 'hachoir_metadata'), ('lib', 'hachoir_parser'),
|
|
('lib', 'jsonrpclib'),
|
|
('lib', 'shove'),
|
|
('lib', 'trakt'),
|
|
('lib', 'tvrage_api'),
|
|
('lib', 'unrar2')
|
|
]]
|
|
|
|
for dirpath, dirnames, filenames in os.walk(parent_dir):
|
|
for dead_dir in filter(lambda x: x in dead_dirs, [os.path.abspath(os.path.join(dirpath, d)) for d in dirnames]):
|
|
try:
|
|
shutil.rmtree(dead_dir)
|
|
except (StandardError, Exception):
|
|
pass
|
|
|
|
for filename in [fn for fn in filenames if os.path.splitext(fn)[-1].lower() in ('.pyc', '.pyo')]:
|
|
try:
|
|
os.remove(os.path.abspath(os.path.join(dirpath, filename)))
|
|
except (StandardError, Exception):
|
|
pass
|
|
|
|
with open(cleaned_file, 'wb') as fp:
|
|
fp.write('This file exists to prevent a rerun delete of *.pyc, *.pyo files')
|
|
fp.flush()
|
|
os.fsync(fp.fileno())
|
|
|
|
cleaned_file = os.path.abspath(os.path.join(parent_dir, '.cleaned_html5lib.tmp'))
|
|
test = os.path.abspath(os.path.join(parent_dir, 'lib', 'html5lib', 'treebuilders', '_base.pyc'))
|
|
danger_output = os.path.abspath(os.path.join(parent_dir, '__README-DANGER.txt'))
|
|
bad_files = []
|
|
if not os.path.isfile(cleaned_file) or os.path.exists(test):
|
|
for dead_path in [os.path.abspath(os.path.join(parent_dir, *d)) for d in [
|
|
('lib', 'html5lib', 'trie'),
|
|
('lib', 'html5lib', 'serializer')
|
|
]]:
|
|
try:
|
|
shutil.rmtree(dead_path)
|
|
except (StandardError, Exception):
|
|
pass
|
|
|
|
for dead_file in [os.path.abspath(os.path.join(parent_dir, *d)) for d in [
|
|
('lib', 'html5lib', 'ihatexml.py'),
|
|
('lib', 'html5lib', 'inputstream.py'),
|
|
('lib', 'html5lib', 'tokenizer.py'),
|
|
('lib', 'html5lib', 'utils.py'),
|
|
('lib', 'html5lib', 'filters', '_base.py'),
|
|
('lib', 'html5lib', 'sanitizer.py'),
|
|
('lib', 'html5lib', 'treebuilders', '_base.py'),
|
|
('lib', 'html5lib', 'treewalkers', '_base.py'),
|
|
('lib', 'html5lib', 'treewalkers', 'lxmletree.py'),
|
|
('lib', 'html5lib', 'treewalkers', 'genshistream.py'),
|
|
]]:
|
|
for ext in ['', 'c', 'o']:
|
|
name = '%s.py%s' % (os.path.splitext(dead_file)[:-1][0], ext)
|
|
if os.path.exists(name):
|
|
try:
|
|
os.remove(name)
|
|
except (StandardError, Exception):
|
|
bad_files += [name]
|
|
if any(bad_files):
|
|
swap_name = cleaned_file
|
|
cleaned_file = danger_output
|
|
danger_output = swap_name
|
|
msg = 'Failed (permissions?) to delete file(s). You must manually delete:\r\n%s' % '\r\n'.join(bad_files)
|
|
print(msg)
|
|
else:
|
|
msg = 'This file exists to prevent a rerun delete of dead lib/html5lib files'
|
|
|
|
with open(cleaned_file, 'wb') as fp:
|
|
fp.write(msg)
|
|
fp.flush()
|
|
os.fsync(fp.fileno())
|
|
|
|
try:
|
|
os.remove(danger_output)
|
|
except (StandardError, Exception):
|
|
pass
|