if(NOT EXISTS "${CO_SERVER_PUBLISH_DIR}") message(FATAL_ERROR "Published C# server directory not found: ${CO_SERVER_PUBLISH_DIR}") endif() if(NOT EXISTS "${CO_SERVER_PUBLISH_DIR}/CommonwealthOnline.Server${CO_SERVER_EXECUTABLE_SUFFIX}") message(FATAL_ERROR "Published C# server entrypoint not found: ${CO_SERVER_PUBLISH_DIR}/CommonwealthOnline.Server${CO_SERVER_EXECUTABLE_SUFFIX}") endif() set(_preserve_config "") if(EXISTS "${CO_SERVER_STAGE_CONFIG}") file(READ "${CO_SERVER_STAGE_CONFIG}" _preserve_config) endif() set(_stage_bans "${CO_SERVER_STAGE_DIR}/bans.json") set(_preserve_bans "") if(EXISTS "${_stage_bans}") file(READ "${_stage_bans}" _preserve_bans) endif() set(_stage_admin_token "${CO_SERVER_STAGE_DIR}/.admin-token") set(_preserve_admin_token "") if(EXISTS "${_stage_admin_token}") file(READ "${_stage_admin_token}" _preserve_admin_token) endif() file(REMOVE_RECURSE "${CO_SERVER_STAGE_DIR}") file(MAKE_DIRECTORY "${CO_SERVER_STAGE_DIR}") file(COPY "${CO_SERVER_PUBLISH_DIR}/" DESTINATION "${CO_SERVER_STAGE_DIR}") if(NOT "${_preserve_config}" STREQUAL "") file(WRITE "${CO_SERVER_STAGE_CONFIG}" "${_preserve_config}") elseif(EXISTS "${CO_SERVER_SOURCE_DIR}/commonwealth-server.json") file(COPY "${CO_SERVER_SOURCE_DIR}/commonwealth-server.json" DESTINATION "${CO_SERVER_STAGE_DIR}") endif() if(NOT "${_preserve_bans}" STREQUAL "") file(WRITE "${_stage_bans}" "${_preserve_bans}") endif() if(NOT "${_preserve_admin_token}" STREQUAL "") file(WRITE "${_stage_admin_token}" "${_preserve_admin_token}") endif() file(GLOB_RECURSE _prohibited_legacy_files LIST_DIRECTORIES false "${CO_SERVER_STAGE_DIR}/*.py" "${CO_SERVER_STAGE_DIR}/*.pyw" "${CO_SERVER_STAGE_DIR}/*.pyi" "${CO_SERVER_STAGE_DIR}/*.pyc" "${CO_SERVER_STAGE_DIR}/*.pyo" "${CO_SERVER_STAGE_DIR}/*.whl" "${CO_SERVER_STAGE_DIR}/*.egg" "${CO_SERVER_STAGE_DIR}/requirements*.txt" "${CO_SERVER_STAGE_DIR}/Pipfile" "${CO_SERVER_STAGE_DIR}/Pipfile.lock" "${CO_SERVER_STAGE_DIR}/pyproject.toml" "${CO_SERVER_STAGE_DIR}/poetry.lock" "${CO_SERVER_STAGE_DIR}/setup.py" "${CO_SERVER_STAGE_DIR}/setup.cfg" "${CO_SERVER_STAGE_DIR}/tox.ini" ) if(_prohibited_legacy_files) string(JOIN "\n " _prohibited_list ${_prohibited_legacy_files}) message(FATAL_ERROR "Prohibited legacy runtime artifacts were staged:\n ${_prohibited_list}") endif() if(NOT EXISTS "${CO_SERVER_STAGE_DIR}/CommonwealthOnline.Server${CO_SERVER_EXECUTABLE_SUFFIX}") message(FATAL_ERROR "Failed to stage C# server entrypoint") endif()