Check and show proper error message if configure.py fails (part of buf 2829)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20967 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2007-10-14 14:51:05 +00:00
parent fd912b1bab
commit 34058aed9b
2 changed files with 22 additions and 6 deletions

View File

@ -591,7 +591,9 @@ def processLayoutFile(file, bool_docbook, bool_linuxdoc):
def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
''' Explore the LaTeX configuration '''
''' Explore the LaTeX configuration
Return None (will be passed to sys.exit()) for success.
'''
print 'checking LaTeX configuration... ',
# if --without-latex-config is forced, or if there is no previous
# version of textclass.lst, re-generate a default file.
@ -630,8 +632,10 @@ def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
tx.write(processLayoutFile(file, bool_docbook, bool_linuxdoc))
tx.close()
print '\tdone'
if not check_config:
return None
# the following will generate textclass.lst.tmp, and packages.lst.tmp
if check_config:
else:
print '\tauto'
removeFiles(['wrap_chkconfig.ltx', 'chkconfig.vars', \
'chkconfig.classes', 'chklayouts.tex'])
@ -673,7 +677,8 @@ def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
break;
if re.match('^\+', line):
print line,
fout.close()
# if the command succeeds, None will be returned
ret = fout.close()
#
# currently, values in chhkconfig are only used to set
# \font_encoding
@ -695,6 +700,7 @@ def checkLatexConfig(check_config, bool_docbook, bool_linuxdoc):
and os.path.isfile('packages.lst.tmp') and len(open('packages.lst.tmp').read()) > 0:
shutil.move('textclass.lst.tmp', 'textclass.lst')
shutil.move('packages.lst.tmp', 'packages.lst')
return ret
def checkModulesConfig():
@ -839,6 +845,8 @@ Options:
addToRC(r'\tex_expects_windows_paths %s' % windows_style_tex_paths)
checkOtherEntries()
# --without-latex-config can disable lyx_check_config
checkLatexConfig( lyx_check_config and LATEX != '', bool_docbook, bool_linuxdoc)
ret = checkLatexConfig(lyx_check_config and LATEX != '',
bool_docbook, bool_linuxdoc)
checkModulesConfig() #lyx_check_config and LATEX != '')
removeTempFiles()
sys.exit(ret)

View File

@ -158,7 +158,7 @@ void reconfigure(LyXView & lv, string const & option)
string configure_command = package().configure_command();
configure_command += option;
Systemcall one;
one.startscript(Systemcall::Wait, configure_command);
int ret = one.startscript(Systemcall::Wait, configure_command);
p.pop();
// emit message signal.
lv.message(_("Reloading configuration..."));
@ -166,7 +166,15 @@ void reconfigure(LyXView & lv, string const & option)
// Re-read packages.lst
LaTeXFeatures::getAvailable();
Alert::information(_("System reconfigured"),
if (ret)
Alert::information(_("System reconfiguration failed"),
_("The system reconfiguration has failed.\n"
"Default textclass is used but LyX may "
"not be able to work properly.\n"
"Please reconfigure again if needed."));
else
Alert::information(_("System reconfigured"),
_("The system has been reconfigured.\n"
"You need to restart LyX to make use of any\n"
"updated document class specifications."));