Mon, 24 Feb 2025 15:43:49 +0100
Adjusted the code to the modified issue codes.
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | #!/usr/bin/env python3 |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | # -*- coding: utf-8 -*- |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11033
diff
changeset
|
4 | # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | # |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | eric-ide Server. |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | This is the main Python script of the eric-ide server. This is a server to perform |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | remote development (e.g. code hosted on another computer or through a docker |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | container). |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | import argparse |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | import socket |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import sys |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
10762
d141283f7334
Adapted logging and improved receiving from the remote server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10719
diff
changeset
|
19 | from eric7.__version__ import Version |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from eric7.RemoteServer.EricServer import EricServer |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | def createArgumentParser(): |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Function to create an argument parser. |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @return created argument parser object |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @rtype argparse.ArgumentParser |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | parser = argparse.ArgumentParser( |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | description=( |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | "Start the eric-ide server component. This will listen for connections" |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | " from the eric IDE in order to perform remote development." |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | ), |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11033
diff
changeset
|
35 | epilog="Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>.", |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | ) |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | parser.add_argument( |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | "-p", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | "--port", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | type=int, |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | default=42024, |
10778
a3fe23f8d0ba
Modified the arguments help text of the eric7_server script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10777
diff
changeset
|
43 | help="Listen on the given port for connections from an eric IDE (default" |
a3fe23f8d0ba
Modified the arguments help text of the eric7_server script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10777
diff
changeset
|
44 | " 42024).", |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | ) |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | parser.add_argument( |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | "-6", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | "--with-ipv6", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | action="store_true", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | help="Listen on IPv6 interfaces as well if the system supports the creation" |
10719
34901362f648
Removed the dependency on 'eric7.UI.Info.Version' in favor of the new 'eric7.__version__.Version'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10597
diff
changeset
|
51 | " of TCP sockets which can handle both IPv4 and IPv6. {0}".format( |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | "This system supports this feature." |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | if socket.has_dualstack_ipv6() |
10719
34901362f648
Removed the dependency on 'eric7.UI.Info.Version' in favor of the new 'eric7.__version__.Version'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10597
diff
changeset
|
54 | else "This system does not support this feature. The option will be" |
34901362f648
Removed the dependency on 'eric7.UI.Info.Version' in favor of the new 'eric7.__version__.Version'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10597
diff
changeset
|
55 | " ignored." |
10597
fbe93720ee9f
Corrected a few formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10531
diff
changeset
|
56 | ), |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | ) |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | parser.add_argument( |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | "-V", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | "--version", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | action="version", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | version="%(prog)s {0}".format(Version), |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | help="Show version information and exit.", |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | ) |
11033 | 65 | parser.add_argument( |
66 | "client_id", | |
67 | nargs="?", | |
68 | default="", | |
69 | help="ID string to check, if received messages have been sent by a" | |
70 | " valid eric IDE (default empty)", | |
71 | ) | |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | return parser |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | def main(): |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | Main entry point into the application. |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | """ |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | parser = createArgumentParser() |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | args = parser.parse_args() |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
11033 | 83 | if not args.client_id: |
84 | print( | |
85 | "You should consider to add a client ID string in order to allow\n" | |
86 | "the eric-ide server to check, if received messages have been sent\n" | |
87 | "by a valid eric IDE.\n" | |
88 | ) | |
89 | ||
90 | server = EricServer(port=args.port, useIPv6=args.with_ipv6, clientId=args.client_id) | |
10531
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | ok = server.run() |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | sys.exit(0 if ok else 1) |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if __name__ == "__main__": |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | main() |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
3308e8349e4c
Started implementing an eric-ide server for remote development (e.g. on a different host or in a Docker container).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | # |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
100 | # eflag: noqa = M-801 |