add versions to snakes and read it in server class
This commit is contained in:
@@ -17,6 +17,7 @@ class Server:
|
||||
'color': '#888888',
|
||||
'head': 'default',
|
||||
'tail': 'default',
|
||||
'version': '1.0.0',
|
||||
}
|
||||
|
||||
def __init__(self, data_path:str, snake_type:str, storage_type:str, debug:bool=False, check_tls_security:bool=False):
|
||||
@@ -42,6 +43,7 @@ class Server:
|
||||
'max_turn': 0,
|
||||
}
|
||||
self.logger = build_logger('Battlesnake', debug_env_var='DEBUG_SERVER')
|
||||
self.snake_version = self._get_snake_version()
|
||||
|
||||
self.app = Quart('Battlesnake')
|
||||
|
||||
@@ -134,12 +136,36 @@ class Server:
|
||||
return await self._override_snake_config_with_environment_variables(snake_config)
|
||||
|
||||
async def _override_snake_config_with_environment_variables(self, config:dict[str, str]) -> dict[str, str]:
|
||||
config['version'] = self.snake_version
|
||||
|
||||
for key in ('author', 'color', 'head', 'tail'):
|
||||
value = os.environ.get(f'SNAKE_{key.upper()}')
|
||||
if value is not None:
|
||||
config[key] = value
|
||||
|
||||
version_override = os.environ.get('SNAKE_VERSION')
|
||||
if version_override is not None:
|
||||
config['version'] = version_override
|
||||
|
||||
return config
|
||||
|
||||
def _get_snake_version(self) -> str:
|
||||
configured_version = SnakeBuilder.get_version(self.snake_type)
|
||||
if configured_version:
|
||||
return configured_version
|
||||
|
||||
try:
|
||||
snake = SnakeBuilder.build(self.snake_type)
|
||||
except Exception:
|
||||
return self.default_snake_config['version']
|
||||
|
||||
version = getattr(snake, 'version', None)
|
||||
if version is None:
|
||||
version = getattr(snake, 'VERSION', None)
|
||||
if not version:
|
||||
return self.default_snake_config['version']
|
||||
return str(version)
|
||||
|
||||
async def _create_game_board(self, game_state:dict):
|
||||
game_id = game_state['game']['id']
|
||||
new_game_board = GameBoard(
|
||||
|
||||
Reference in New Issue
Block a user