scripts/patch_modpython.py

branch
eric7
changeset 8334
c113428ecff3
parent 8333
12948ec78ca0
child 8335
9fa339ca2a91
diff -r 12948ec78ca0 -r c113428ecff3 scripts/patch_modpython.py
--- a/scripts/patch_modpython.py	Thu May 20 19:16:58 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2003 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-# This is a  script to patch mod_python for eric.
-
-"""
-Script to patch mod_python for usage with the eric IDE.
-"""
-
-import sys
-import os
-import shutil
-import py_compile
-import distutils.sysconfig
-
-# Define the globals.
-progName = None
-modDir = None
-
-
-def usage(rcode=2):
-    """
-    Display a usage message and exit.
-
-    @param rcode return code passed back to the calling process (integer)
-    """
-    global progName, modDir
-    
-    print("Usage:")
-    print("    {0} [-h] [-d dir]".format(progName))
-    print("where:")
-    print("    -h             display this help message")
-    print("    -d dir         where Mod_python files are installed"
-          " [default {0}]".format(modDir))
-    print()
-    print("This script patches the file apache.py of the Mod_python"
-          " distribution")
-    print("so that it will work with the eric debugger instead of pdb.")
-    print("Please see mod_python.html for more details.")
-    print()
-
-    sys.exit(rcode)
-
-
-def initGlobals():
-    """
-    Module function to set the values of globals that need more than a
-    simple assignment.
-    """
-    global modDir
-
-    modDir = os.path.join(distutils.sysconfig.get_python_lib(True),
-                          "mod_python")
-
-
-def main(argv):
-    """
-    The main function of the script.
-
-    @param argv list of command line arguments (list of strings)
-    """
-    import getopt
-
-    # Parse the command line.
-    global progName, modDir
-    progName = os.path.basename(argv[0])
-
-    initGlobals()
-
-    try:
-        optlist, args = getopt.getopt(argv[1:], "hd:")
-    except getopt.GetoptError:
-        usage()
-
-    for opt, arg in optlist:
-        if opt == "-h":
-            usage(0)
-        elif opt == "-d":
-            global modDir
-            modDir = arg
-    
-    try:
-        filename = os.path.join(modDir, "apache.py")
-        with open(filename, "r", encoding="utf-8") as f:
-            lines = f.readlines()
-    except OSError:
-        print("The file {0} does not exist. Aborting.".format(filename))
-        sys.exit(1)
-    
-    pdbFound = False
-    ericFound = False
-    
-    sn = "apache.py"
-    with open(sn, "w", encoding="utf-8") as s:
-        for line in lines:
-            if not pdbFound and line.startswith("import pdb"):
-                s.write("import eric7.DebugClients.Python.eric7dbgstub as"
-                        " pdb\n")
-                pdbFound = True
-            else:
-                s.write(line)
-                if line.startswith("import eric7"):
-                    ericFound = True
-        
-        if not ericFound:
-            s.write("\n")
-            s.write('def initDebugger(name):\n')
-            s.write('    """\n')
-            s.write('    Initialize the debugger and set the script name to be'
-                    ' reported \n')
-            s.write('    by the debugger. This is a patch for eric.\n')
-            s.write('    """\n')
-            s.write('    if not pdb.initDebugger("standard"):\n')
-            s.write('        raise ImportError("Could not initialize'
-                    ' debugger")\n')
-            s.write('    pdb.setScriptname(name)\n')
-            s.write("\n")
-    
-    if ericFound:
-        print("Mod_python is already patched for eric.")
-        os.remove(sn)
-    else:
-        try:
-            py_compile.compile(sn)
-        except py_compile.PyCompileError as e:
-            print("Error compiling {0}. Aborting".format(sn))
-            print(e)
-            os.remove(sn)
-            sys.exit(1)
-        except SyntaxError as e:
-            print("Error compiling {0}. Aborting".format(sn))
-            print(e)
-            os.remove(sn)
-            sys.exit(1)
-        
-        shutil.copy(os.path.join(modDir, "apache.py"),
-                    os.path.join(modDir, "apache.py.orig"))
-        shutil.copy(sn, modDir)
-        os.remove(sn)
-        if os.path.exists("{0}c".format(sn)):
-            shutil.copy("{0}c".format(sn), modDir)
-            os.remove("{0}c".format(sn))
-        if os.path.exists("{0}o".format(sn)):
-            shutil.copy("{0}o".format(sn), modDir)
-            os.remove("{0}o".format(sn))
-            
-        print("Mod_python patched successfully.")
-        print("Unpatched file copied to {0}.".format(
-            os.path.join(modDir, "apache.py.orig")))
-    
-    
-if __name__ == "__main__":
-    try:
-        main(sys.argv)
-    except SystemExit:
-        raise
-    except Exception:
-        print("""An internal error occured.  Please report all the output of"""
-              """ the program,\nincluding the following traceback, to"""
-              """ eric-bugs@die-offenbachs.de.\n""")
-        raise
-
-#
-# eflag: noqa = M801

eric ide

mercurial