90 lines
3.4 KiB
Python
90 lines
3.4 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
"""
|
||
|
Created on Sat Apr 9 13:51:48 2011
|
||
|
|
||
|
@author: ProfMobius & Searge
|
||
|
@version: v1.0
|
||
|
"""
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import glob
|
||
|
import logging
|
||
|
from optparse import OptionParser
|
||
|
|
||
|
from commands import Commands, reallyrmtree
|
||
|
|
||
|
|
||
|
def main():
|
||
|
parser = OptionParser(version='MCP %s' % Commands.fullversion())
|
||
|
parser.add_option('-f', '--force', action='store_true', dest='force', help='force cleanup', default=False)
|
||
|
parser.add_option('-c', '--config', dest='config', help='additional configuration file')
|
||
|
parser.add_option('-d', '--distclean', action='store_true', dest='distclean', help='Remove worlds, libraries and jars', default=False)
|
||
|
options, _ = parser.parse_args()
|
||
|
cleanup(options.config, options.force, options.distclean)
|
||
|
|
||
|
|
||
|
def cleanup(conffile, force, distclean):
|
||
|
try:
|
||
|
commands = Commands(conffile, shortstart=True)
|
||
|
|
||
|
if not force:
|
||
|
print 'WARNING:'
|
||
|
print 'The cleanup script will delete all folders created by MCP, including the'
|
||
|
print 'src folder which may contain changes you made to the code, along with any'
|
||
|
print 'saved worlds from the client or server.'
|
||
|
answer = raw_input('If you really want to clean up, enter "Yes" ')
|
||
|
if answer.lower() not in ['yes']:
|
||
|
print 'You have not entered "Yes", aborting the clean up process'
|
||
|
sys.exit(1)
|
||
|
|
||
|
commands.checkupdates()
|
||
|
|
||
|
try:
|
||
|
commands.logger.info('> Cleaning temp')
|
||
|
reallyrmtree(commands.dirtemp)
|
||
|
|
||
|
commands.logger.info('> Cleaning src')
|
||
|
reallyrmtree(commands.dirsrc)
|
||
|
|
||
|
commands.logger.info('> Cleaning bin')
|
||
|
reallyrmtree(commands.dirbin)
|
||
|
|
||
|
commands.logger.info('> Cleaning reobf')
|
||
|
reallyrmtree(commands.dirreobf)
|
||
|
|
||
|
if distclean:
|
||
|
commands.logger.info('> Cleaning lib')
|
||
|
reallyrmtree(commands.dirlib)
|
||
|
|
||
|
commands.logger.info('> Cleaning jars')
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'stats'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'texturepacks'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'texturepacks-mp-cache'))
|
||
|
if distclean:
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'saves'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'mcpworld'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'versions'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'assets'))
|
||
|
reallyrmtree(os.path.join(commands.dirjars, 'libraries'))
|
||
|
if os.path.exists(os.path.join(commands.dirjars, 'server.log')):
|
||
|
os.remove(os.path.join(commands.dirjars, 'server.log'))
|
||
|
for txt_file in glob.glob(os.path.join(commands.dirjars, '*.txt')):
|
||
|
os.remove(txt_file)
|
||
|
|
||
|
commands.logger.info('> Cleaning logs')
|
||
|
logging.shutdown()
|
||
|
reallyrmtree(commands.dirlogs)
|
||
|
except OSError as ex:
|
||
|
print >> sys.stderr, 'Cleanup FAILED'
|
||
|
if hasattr(ex, 'filename'):
|
||
|
print >> sys.stderr, 'Failed to remove ' + ex.filename
|
||
|
sys.exit(1)
|
||
|
except Exception: # pylint: disable-msg=W0703
|
||
|
logging.exception('FATAL ERROR')
|
||
|
sys.exit(1)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|