70 lines
2.5 KiB
CMake
70 lines
2.5 KiB
CMake
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()
|