src/eric7/eric7_server.py

branch
server
changeset 10531
3308e8349e4c
child 10597
fbe93720ee9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/eric7_server.py	Mon Jan 29 19:50:44 2024 +0100
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+eric-ide Server.
+
+This is the main Python script of the eric-ide server. This is a server to perform
+remote development (e.g. code hosted on another computer or through a docker
+container).
+"""
+
+import argparse
+import socket
+import sys
+
+from eric7.RemoteServer.EricServer import EricServer
+from eric7.UI.Info import Version
+
+
+def createArgumentParser():
+    """
+    Function to create an argument parser.
+
+    @return created argument parser object
+    @rtype argparse.ArgumentParser
+    """
+    parser = argparse.ArgumentParser(
+        description=(
+            "Start the eric-ide server component. This will listen for connections"
+            " from the eric IDE in order to perform remote development."
+        ),
+        epilog="Copyright (c) 2024 Detlev Offenbach <detlev@die-offenbachs.de>.",
+    )
+
+    parser.add_argument(
+        "-p",
+        "--port",
+        type=int,
+        default=42024,
+        help="Listen on the given port for connections from an eric IDE."
+    )
+    parser.add_argument(
+        "-6",
+        "--with-ipv6",
+        action="store_true",
+        help="Listen on IPv6 interfaces as well if the system supports the creation"
+        "of TCP sockets which can handle both IPv4 and IPv6. {0}".format(
+            "This system supports this feature."
+            if socket.has_dualstack_ipv6()
+            else "This system does not support this feature. Option will be ignored."
+        )
+    )
+    parser.add_argument(
+        "-V",
+        "--version",
+        action="version",
+        version="%(prog)s {0}".format(Version),
+        help="Show version information and exit.",
+    )
+
+    return parser
+
+
+def main():
+    """
+    Main entry point into the application.
+    """
+    global supportedExtensions
+
+    parser = createArgumentParser()
+    args = parser.parse_args()
+
+    server = EricServer(port=args.port, useIPv6=args.with_ipv6)
+    ok = server.run()
+
+    sys.exit(0 if ok else 1)
+
+
+if __name__ == "__main__":
+    main()
+
+#
+# eflag: noqa = M801

eric ide

mercurial