]> git.lyx.org Git - features.git/commitdiff
Check and show proper error message if configure.py fails (part of buf 2829)
authorBo Peng <bpeng@lyx.org>
Sun, 14 Oct 2007 14:51:05 +0000 (14:51 +0000)
committerBo Peng <bpeng@lyx.org>
Sun, 14 Oct 2007 14:51:05 +0000 (14:51 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20967 a592a061-630c-0410-9148-cb99ea01b6c8

lib/configure.py
src/LyXFunc.cpp

index a97fa6ad596bf335b0336aece4f3b777af5d88cc..ded2ea9f343d6de2964048e728d1e7af6b42a519 100644 (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)
index ddb4ab2f9919014803b43a327093302e172fa47f..22c56d38a0b24034736fdd52abe97a2d1350544d 100644 (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."));