home
·
contact
·
privacy
projects
/
plomrogue
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add Python server testing script.
[plomrogue]
/
plomrogue-server.py
diff --git
a/plomrogue-server.py
b/plomrogue-server.py
index 3c8b5e7856459bfe0eadca1b7497a7f106398de9..77c19acd498326b49f9796c43b7a7b9ad7fc215e 100755
(executable)
--- a/
plomrogue-server.py
+++ b/
plomrogue-server.py
@@
-1,3
+1,4
@@
+#!/usr/bin/python3
import argparse
import errno
import os
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):
"""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
libpr = ctypes.cdll.LoadLibrary(libpath)
libpr.seed_rrand.argtypes = [ctypes.c_uint8, ctypes.c_uint32]
libpr.seed_rrand.restype = ctypes.c_uint32
@@
-56,10
+58,9
@@
def prep_library():
def strong_write(file, string):
def strong_write(file, string):
- """Apply write(string),
flush(), and os.fsync() to file
."""
+ """Apply write(string),
then flush()
."""
file.write(string)
file.flush()
file.write(string)
file.flush()
- os.fsync(file)
def setup_server_io():
def setup_server_io():
@@
-99,11
+100,11
@@
def cleanup_server_io():
def helper(file_key, path_key):
if file_key in io_db:
io_db[file_key].close()
def helper(file_key, path_key):
if file_key in io_db:
io_db[file_key].close()
- 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")
+ 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_in", "path_in")
helper("file_in", "path_in")
+ helper("file_out", "path_out")
helper("file_worldstate", "path_worldstate")
if "file_record" in io_db:
io_db["file_record"].close()
helper("file_worldstate", "path_worldstate")
if "file_record" in io_db:
io_db["file_record"].close()
@@
-256,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 = 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
parser.add_argument('-v', dest='verbose', action='store_true')
opts, unknown = parser.parse_known_args()
return opts
@@
-1599,7
+1602,7
@@
directions_db = {"east": "d", "south-east": "c", "south-west": "x",
"""File IO database."""
io_db = {
"path_save": "save",
"""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",
"path_worldconf": "confserver/world",
"path_server": "server/",
"path_in": "server/in",
@@
-1614,8
+1617,11
@@
io_db = {
try:
libpr = prep_library()
rand = RandomnessIO()
try:
libpr = prep_library()
rand = RandomnessIO()
- setup_server_io()
opts = parse_command_line_arguments()
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:
if opts.verbose:
io_db["verbose"] = True
if None != opts.replay: