home · contact · privacy
Server/py: Allow working with non-default save file.
[plomrogue] / plomrogue-server.py
index 5af05f7949e2ca18c16bcb3359d0f73d67fc6e10..77c19acd498326b49f9796c43b7a7b9ad7fc215e 100755 (executable)
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
 import argparse
 import errno
 import os
@@ -26,7 +27,8 @@ def prep_library():
     """Prepare ctypes library at ./libplomrogue.so"""
     libpath = ("./libplomrogue.so")
     if not os.access(libpath, os.F_OK):
-        raise SystemExit("No library " + libpath + ", run ./compile.sh first?")
+        raise SystemExit("No library " + libpath +
+                         ", run ./compile-server.sh first?")
     libpr = ctypes.cdll.LoadLibrary(libpath)
     libpr.seed_rrand.argtypes = [ctypes.c_uint8, ctypes.c_uint32]
     libpr.seed_rrand.restype = ctypes.c_uint32
@@ -255,6 +257,8 @@ def parse_command_line_arguments():
     parser = argparse.ArgumentParser()
     parser.add_argument('-s', nargs='?', type=int, dest='replay', const=1,
                         action='store')
+    parser.add_argument('-l', nargs="?", const="save", dest='savefile',
+                        action="store")
     parser.add_argument('-v', dest='verbose', action='store_true')
     opts, unknown = parser.parse_known_args()
     return opts
@@ -1598,7 +1602,7 @@ directions_db = {"east": "d", "south-east": "c", "south-west": "x",
 """File IO database."""
 io_db = {
     "path_save": "save",
-    "path_record": "record",
+    "path_record": "record_save",
     "path_worldconf": "confserver/world",
     "path_server": "server/",
     "path_in": "server/in",
@@ -1613,8 +1617,11 @@ io_db = {
 try:
     libpr = prep_library()
     rand = RandomnessIO()
-    setup_server_io()
     opts = parse_command_line_arguments()
+    if opts.savefile:
+        io_db["path_save"] = opts.savefile
+        io_db["path_record"] = "record_" + opts.savefile
+    setup_server_io()
     if opts.verbose:
         io_db["verbose"] = True
     if None != opts.replay: