--- /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