def setup_server_io(io_db):
"""Fill IO files DB with proper file( path)s. Write process IO test string.
- Decide file paths. Ensure IO files directory at server/. Remove any old in
- file if found. Set up new in file (io_db["file_in"]) for reading at
- io_db["path_in"], and new out file (io_db["file_out"]) for writing at
- io_db["path_out"]. Start out file with process hash line of format PID +
- " " + floated UNIX time (io_db["teststring"]). Run detect_atomic_leftover
- on io_db["path_record"] and io_db["path_save"].
+ Set io_db["kicked_by_rival"] to False. Decide file paths. Ensure IO files
+ directory at server/. Remove any old in file if found. Set up new in file
+ (io_db["file_in"]) for reading at io_db["path_in"], and new out file
+ (io_db["file_out"]) for writing at io_db["path_out"]. Start out file with
+ process hash line of format PID + " " + floated UNIX time
+ (io_db["teststring"]). Run detect_atomic_leftover on io_db["path_record"]
+ and io_db["path_save"].
"""
io_dir = "server/"
+ io_db["kicked_by_rival"] = False
io_db["path_in"] = io_dir + "in"
io_db["path_out"] = io_dir + "out"
io_db["path_worldstate"] = io_dir + "worldstate"
def helper(file_key, path_key):
if file_key in io_db:
io_db[file_key].close()
- if not io_db["kicked_by_rival"]:
+ if not io_db["kicked_by_rival"] \
+ and os.access(io_db[path_key], os.F_OK):
os.remove(io_db[path_key])
helper("file_out", "path_out")
helper("file_in", "path_in")
def obey(cmd, io_db, prefix):
""""""
+ server_test(io_db)
print("input " + prefix + ": " + cmd)
try:
tokens = shlex.split(cmd, comments=True)
raise SystemExit(msg)
-def io_loop ():
+def io_loop():
return False
prefix = "record file line "
line_n = 1
while world_db["turn"] < opts.replay:
- server_test(io_db)
obey(file.readline().rstrip(), io_db, prefix + str(line_n))
line_n = line_n + 1
- world_db["turn"] = world_db["turn"] + 1
while io_loop():
- server_test(io_db)
obey(file.readline().rstrip(), io_db, prefix + str(line_n))
line_n = line_n + 1
file.close()