Added a bit of color to server stuff

This commit is contained in:
Eric Froemling 2020-05-02 16:45:56 -07:00
parent a89ee4f3ff
commit 2f52ecb54c
4 changed files with 22 additions and 17 deletions

View File

@ -4140,8 +4140,8 @@
"build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e2/ab/b22ebe07c4342beb4dba33d5f7a5", "build/prefab/mac-server/release/dist/ballisticacore_headless": "https://files.ballistica.net/cache/ba1/e2/ab/b22ebe07c4342beb4dba33d5f7a5",
"build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/80/24/b24a5a26ce61719456479f0c452d", "build/prefab/mac/debug/ballisticacore": "https://files.ballistica.net/cache/ba1/80/24/b24a5a26ce61719456479f0c452d",
"build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/13/5f/7dff6b239258c1a1151df24eec19", "build/prefab/mac/release/ballisticacore": "https://files.ballistica.net/cache/ba1/13/5f/7dff6b239258c1a1151df24eec19",
"build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/f1/41/8203dd42e85b8cfde0141715de3b", "build/prefab/windows-server/debug/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/9b/9e/4db687b4f06579dafe4f1f9cf389",
"build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/56/46/86ea1b38475a43dc95a65db0623a", "build/prefab/windows-server/release/dist/ballisticacore_headless.exe": "https://files.ballistica.net/cache/ba1/16/16/ac342d48eb3964472eabb6854bd8",
"build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/8f/28/7d7560edfe6b862003a699cd72d9", "build/prefab/windows/debug/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/c3/5e/42852af8d746f60999139e7069cd",
"build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/d8/f0/03642738f87df03341a196132cc8" "build/prefab/windows/release/BallisticaCore.exe": "https://files.ballistica.net/cache/ba1/34/d3/a51b67800857a8271d6f1d947f5a"
} }

View File

@ -25,6 +25,7 @@ import sys
import time import time
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from efro.terminal import Clr
from ba._enums import TimeType from ba._enums import TimeType
from ba._freeforallsession import FreeForAllSession from ba._freeforallsession import FreeForAllSession
from ba._dualteamsession import DualTeamSession from ba._dualteamsession import DualTeamSession
@ -271,14 +272,13 @@ class ServerController:
print('error on UDP port access check (internet down?)') print('error on UDP port access check (internet down?)')
else: else:
if data['accessible']: if data['accessible']:
print('UDP port', gameport, ('access check successful. Your ' print(f'{Clr.SGRN}UDP port {gameport} access check successful.'
'server appears to be joinable ' f' Your server appears to be joinable from the'
'from the internet.')) f' internet.{Clr.RST}')
else: else:
print('UDP port', gameport, print(f'{Clr.SRED}UDP port {gameport} access check failed.'
('access check failed. Your server ' f' Your server does not appear to be joinable'
'does not appear to be joinable ' f' from the internet.{Clr.RST}')
'from the internet.'))
def _config_server(self) -> None: def _config_server(self) -> None:
"""Apply server config changes that can take effect immediately. """Apply server config changes that can take effect immediately.

View File

@ -38,6 +38,7 @@ sys.path += [
str(Path(os.getcwd(), 'dist', 'ba_data', 'python-site-packages')) str(Path(os.getcwd(), 'dist', 'ba_data', 'python-site-packages'))
] ]
from efro.terminal import Clr
from efro.dataclassutils import dataclass_assign, dataclass_validate from efro.dataclassutils import dataclass_assign, dataclass_validate
from bacommon.servermanager import (ServerConfig, ServerCommand, from bacommon.servermanager import (ServerConfig, ServerCommand,
make_server_command) make_server_command)
@ -123,9 +124,9 @@ class ServerManagerApp:
# Print basic usage info in interactive mode. # Print basic usage info in interactive mode.
if sys.stdin.isatty(): if sys.stdin.isatty():
print('BallisticaCore server manager starting up...\n' print(f'{Clr.SBLU}BallisticaCore server manager starting up...\n'
'Use the "mgr" object to make live server adjustments.\n' f'Use the "mgr" object to make live server adjustments.\n'
'Type "help(mgr)" for more information.') f'Type "help(mgr)" for more information.{Clr.RST}')
# Python will handle SIGINT for us (as KeyboardInterrupt) but we # Python will handle SIGINT for us (as KeyboardInterrupt) but we
# need to register a SIGTERM handler so we have a chance to clean # need to register a SIGTERM handler so we have a chance to clean
@ -145,6 +146,10 @@ class ServerManagerApp:
# Enable tab-completion if possible. # Enable tab-completion if possible.
self._enable_tab_completion(locs) self._enable_tab_completion(locs)
# Give ourself a lovely color prompt.
sys.ps1 = f'{Clr.SGRN}>>> {Clr.RST}'
sys.ps2 = f'{Clr.SGRN}... {Clr.RST}'
# Now just sit in an interpreter. # Now just sit in an interpreter.
# TODO: make it possible to use IPython if the user has it available. # TODO: make it possible to use IPython if the user has it available.
try: try:
@ -298,7 +303,7 @@ class ServerManagerApp:
if self._process is None: if self._process is None:
return return
print('Stopping server process...') print(f'{Clr.SBLU}Stopping server process...{Clr.RST}')
# First, ask it nicely to die and give it a moment. # First, ask it nicely to die and give it a moment.
# If that doesn't work, bring down the hammer. # If that doesn't work, bring down the hammer.
@ -308,7 +313,7 @@ class ServerManagerApp:
except subprocess.TimeoutExpired: except subprocess.TimeoutExpired:
self._process.kill() self._process.kill()
self._process = self._process_launch_time = None self._process = self._process_launch_time = None
print('Server process stopped.') print(f'{Clr.SBLU}Server process stopped.{Clr.RST}')
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -1,5 +1,5 @@
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND --> <!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
<h4><em>last updated on 2020-05-01 for Ballistica version 1.5.0 build 20001</em></h4> <h4><em>last updated on 2020-05-02 for Ballistica version 1.5.0 build 20001</em></h4>
<p>This page documents the Python classes and functions in the 'ba' module, <p>This page documents the Python classes and functions in the 'ba' module,
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p> which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
<hr> <hr>