Added debug logging with --verbose for command_line.py.
This commit is contained in:
parent
28c16b4254
commit
6dc5a981b3
1 changed files with 33 additions and 6 deletions
|
|
@ -17,6 +17,7 @@ import zipfile
|
||||||
import traceback
|
import traceback
|
||||||
import subprocess
|
import subprocess
|
||||||
import logging
|
import logging
|
||||||
|
import logging.handlers as lh
|
||||||
import plistlib
|
import plistlib
|
||||||
|
|
||||||
from semantic_version import Version
|
from semantic_version import Version
|
||||||
|
|
@ -40,6 +41,8 @@ DEFAULT_DOWNLOAD_PATH = os.path.join(CWD,
|
||||||
'files',
|
'files',
|
||||||
'downloads').replace('\\',
|
'downloads').replace('\\',
|
||||||
'\\\\')
|
'\\\\')
|
||||||
|
logger = logging.getLogger('W2E logger')
|
||||||
|
LOG_FILENAME = os.path.join(CWD, 'files', 'error.log')
|
||||||
if __name__ != '__main__':
|
if __name__ != '__main__':
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
filename=os.path.join(CWD, 'files', 'error.log'),
|
filename=os.path.join(CWD, 'files', 'error.log'),
|
||||||
|
|
@ -49,6 +52,8 @@ if __name__ != '__main__':
|
||||||
)
|
)
|
||||||
logger = logging.getLogger('W2E logger')
|
logger = logging.getLogger('W2E logger')
|
||||||
|
|
||||||
|
handler = lh.RotatingFileHandler(LOG_FILENAME, maxBytes=100000, backupCount=2)
|
||||||
|
logger.addHandler(handler)
|
||||||
|
|
||||||
def my_excepthook(type_, value, tback):
|
def my_excepthook(type_, value, tback):
|
||||||
output_err = ''.join(traceback.format_exception(type_, value, tback))
|
output_err = ''.join(traceback.format_exception(type_, value, tback))
|
||||||
|
|
@ -210,7 +215,7 @@ class Setting(object):
|
||||||
elif self.file_ext == '.zip':
|
elif self.file_ext == '.zip':
|
||||||
new_bytes = file.read(extract_p)
|
new_bytes = file.read(extract_p)
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
log(str(e))
|
logger.error(str(e))
|
||||||
# dirty hack to support old versions of nw
|
# dirty hack to support old versions of nw
|
||||||
if 'no item named' in str(e):
|
if 'no item named' in str(e):
|
||||||
extract_path = '/'.join(extract_path.split('/')[1:])
|
extract_path = '/'.join(extract_path.split('/')[1:])
|
||||||
|
|
@ -220,7 +225,7 @@ class Setting(object):
|
||||||
elif self.file_ext == '.zip':
|
elif self.file_ext == '.zip':
|
||||||
new_bytes = file.read(extract_path)
|
new_bytes = file.read(extract_path)
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
log(str(e))
|
logger.error(str(e))
|
||||||
|
|
||||||
if new_bytes is not None:
|
if new_bytes is not None:
|
||||||
fbytes.append((dest_path, new_bytes))
|
fbytes.append((dest_path, new_bytes))
|
||||||
|
|
@ -257,6 +262,7 @@ class CommandBase(object):
|
||||||
self.original_packagejson = {}
|
self.original_packagejson = {}
|
||||||
|
|
||||||
def init(self):
|
def init(self):
|
||||||
|
self.logger = logging.getLogger('CMD logger')
|
||||||
self.update_nw_versions(None)
|
self.update_nw_versions(None)
|
||||||
self.setup_nw_versions()
|
self.setup_nw_versions()
|
||||||
|
|
||||||
|
|
@ -329,12 +335,15 @@ class CommandBase(object):
|
||||||
return setting
|
return setting
|
||||||
|
|
||||||
def show_error(self, error):
|
def show_error(self, error):
|
||||||
print error
|
if self.logger is not None:
|
||||||
|
self.logger.error(error)
|
||||||
|
|
||||||
def enable_ui_after_error(self):
|
def enable_ui_after_error(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def get_versions(self):
|
def get_versions(self):
|
||||||
|
if self.logger is not None:
|
||||||
|
self.logger.info('Getting versions...')
|
||||||
response = urllib2.urlopen(self.settings['version_info']['url'])
|
response = urllib2.urlopen(self.settings['version_info']['url'])
|
||||||
html = response.read()
|
html = response.read()
|
||||||
|
|
||||||
|
|
@ -389,6 +398,7 @@ class CommandBase(object):
|
||||||
self.enable_ui_after_error()
|
self.enable_ui_after_error()
|
||||||
|
|
||||||
def load_package_json(self, json_path=None):
|
def load_package_json(self, json_path=None):
|
||||||
|
self.logger.info('Loading package.json')
|
||||||
if json_path is not None:
|
if json_path is not None:
|
||||||
p_json = [json_path]
|
p_json = [json_path]
|
||||||
else:
|
else:
|
||||||
|
|
@ -402,11 +412,12 @@ class CommandBase(object):
|
||||||
try:
|
try:
|
||||||
setting_list = self.load_from_json(json_str)
|
setting_list = self.load_from_json(json_str)
|
||||||
except ValueError as e: # Json file is invalid
|
except ValueError as e: # Json file is invalid
|
||||||
log('Warning: Json file invalid.')
|
self.logger.warning('Warning: Json file invalid.')
|
||||||
self.progress_text = '{}\n'.format(e)
|
self.progress_text = '{}\n'.format(e)
|
||||||
return setting_list
|
return setting_list
|
||||||
|
|
||||||
def generate_json(self):
|
def generate_json(self):
|
||||||
|
self.logger.info('Generating package.json...')
|
||||||
if 'webkit' not in self.original_packagejson:
|
if 'webkit' not in self.original_packagejson:
|
||||||
self.original_packagejson['webkit'] = {}
|
self.original_packagejson['webkit'] = {}
|
||||||
if 'window' not in self.original_packagejson:
|
if 'window' not in self.original_packagejson:
|
||||||
|
|
@ -534,6 +545,7 @@ class CommandBase(object):
|
||||||
if os.path.exists(save_file_path):
|
if os.path.exists(save_file_path):
|
||||||
os.remove(save_file_path)
|
os.remove(save_file_path)
|
||||||
self.extract_error = e
|
self.extract_error = e
|
||||||
|
self.logger.error(str(self.extract_error))
|
||||||
# cannot use GUI in thread to notify user. Save it for later
|
# cannot use GUI in thread to notify user. Save it for later
|
||||||
self.progress_text = '\nDone.\n'
|
self.progress_text = '\nDone.\n'
|
||||||
return True
|
return True
|
||||||
|
|
@ -690,6 +702,7 @@ class CommandBase(object):
|
||||||
sys.exc_info()[1],
|
sys.exc_info()[1],
|
||||||
sys.exc_info()[2])
|
sys.exc_info()[2])
|
||||||
self.output_err += ''.join(exc)
|
self.output_err += ''.join(exc)
|
||||||
|
self.logger.error(exc)
|
||||||
finally:
|
finally:
|
||||||
shutil.rmtree(temp_dir)
|
shutil.rmtree(temp_dir)
|
||||||
|
|
||||||
|
|
@ -708,6 +721,7 @@ class CommandBase(object):
|
||||||
def copy_files_to_project_folder(self):
|
def copy_files_to_project_folder(self):
|
||||||
old_dir = CWD
|
old_dir = CWD
|
||||||
os.chdir(self.project_dir())
|
os.chdir(self.project_dir())
|
||||||
|
self.logger.info('Copying files to {}'.format(self.project_dir()))
|
||||||
for sgroup in self.settings['setting_groups']:
|
for sgroup in self.settings['setting_groups']:
|
||||||
for setting in sgroup.values():
|
for setting in sgroup.values():
|
||||||
if setting.type == 'file' and setting.value:
|
if setting.type == 'file' and setting.value:
|
||||||
|
|
@ -715,8 +729,9 @@ class CommandBase(object):
|
||||||
if os.path.isabs(f_path):
|
if os.path.isabs(f_path):
|
||||||
try:
|
try:
|
||||||
shutil.copy(setting.value, self.project_dir())
|
shutil.copy(setting.value, self.project_dir())
|
||||||
|
self.logger.info('Copying file {} to {}'.format(setting.value, self.project_dir()))
|
||||||
except shutil.Error as e: # same file warning
|
except shutil.Error as e: # same file warning
|
||||||
log('Warning: {}'.format(e))
|
self.logger.warning('Warning: {}'.format(e))
|
||||||
finally:
|
finally:
|
||||||
setting.value = os.path.basename(setting.value)
|
setting.value = os.path.basename(setting.value)
|
||||||
|
|
||||||
|
|
@ -754,6 +769,7 @@ class CommandBase(object):
|
||||||
return self.extract_files()
|
return self.extract_files()
|
||||||
|
|
||||||
def download_file(self, path, setting):
|
def download_file(self, path, setting):
|
||||||
|
self.logger.info('Downloading file {}.'.format(path))
|
||||||
|
|
||||||
location = self.get_setting('download_dir').value
|
location = self.get_setting('download_dir').value
|
||||||
|
|
||||||
|
|
@ -778,6 +794,7 @@ class CommandBase(object):
|
||||||
forced = self.get_setting('force_download').value
|
forced = self.get_setting('force_download').value
|
||||||
|
|
||||||
if (archive_exists or dest_files_exist) and not forced:
|
if (archive_exists or dest_files_exist) and not forced:
|
||||||
|
self.logger.info('File {} already downloaded. Continuing...'.format(path))
|
||||||
return self.continue_downloading_or_extract()
|
return self.continue_downloading_or_extract()
|
||||||
elif tmp_exists and (os.stat(tmp_file).st_size > 0):
|
elif tmp_exists and (os.stat(tmp_file).st_size > 0):
|
||||||
tmp_size = os.stat(tmp_file).st_size
|
tmp_size = os.stat(tmp_file).st_size
|
||||||
|
|
@ -908,7 +925,7 @@ if __name__ == '__main__':
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
stream=sys.stdout,
|
stream=sys.stdout,
|
||||||
format=("%(levelname) -10s %(asctime)s %(module)s.py: "
|
format=("%(levelname) -10s %(module)s.py: "
|
||||||
"%(lineno)s %(funcName)s - %(message)s"),
|
"%(lineno)s %(funcName)s - %(message)s"),
|
||||||
level=logging.DEBUG
|
level=logging.DEBUG
|
||||||
)
|
)
|
||||||
|
|
@ -921,6 +938,16 @@ if __name__ == '__main__':
|
||||||
)
|
)
|
||||||
|
|
||||||
logger = logging.getLogger('CMD Logger')
|
logger = logging.getLogger('CMD Logger')
|
||||||
|
handler = lh.RotatingFileHandler(LOG_FILENAME, maxBytes=100000, backupCount=2)
|
||||||
|
logger.addHandler(handler)
|
||||||
|
|
||||||
|
def my_excepthook(type_, value, tback):
|
||||||
|
output_err = ''.join(traceback.format_exception(type_, value, tback))
|
||||||
|
logger.error('{}'.format(output_err))
|
||||||
|
sys.__excepthook__(type_, value, tback)
|
||||||
|
|
||||||
|
sys.excepthook = my_excepthook
|
||||||
|
|
||||||
command_base.logger = logger
|
command_base.logger = logger
|
||||||
|
|
||||||
if args.quiet:
|
if args.quiet:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue