summaryrefslogtreecommitdiff
path: root/bot_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot_server.py')
-rw-r--r--bot_server.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/bot_server.py b/bot_server.py
new file mode 100644
index 0000000..6d8c72c
--- /dev/null
+++ b/bot_server.py
@@ -0,0 +1,33 @@
+import importlib
+import os
+import robots
+import sys
+
+if __name__ == '__main__':
+ if len(sys.argv) < 2:
+ print(f'Usage: python3 {sys.argv[0]} {{your-name}}')
+ print(f' your-name: your name, used to identify your server on the network')
+ print()
+ print(f'Run this command to host a server advertising all of the bots in the bots/ directory.')
+ sys.exit(1);
+
+ name, = sys.argv[1:]
+ server = robots.Server()
+ server.SERVER_NAME = name
+
+ num_bots = 0
+ for filename in os.listdir('bots'):
+ if filename.endswith('.py'):
+ bot_name = filename.removesuffix('.py')
+ module = importlib.import_module(f'bots.{bot_name}')
+ try:
+ server.add_simple_bot(module.calculate_orders, bot_name)
+ num_bots += 1
+ except AttributeError:
+ print(f'Warning: bots/{filename} was missing `calculate_orders` function.', file=sys.stderr)
+
+ if num_bots == 0:
+ print(f'No bots found: not starting a bot server.', file=sys.stderr)
+ sys.exit(2)
+ else:
+ server.run()