github.com/tada-team/tdproto@v1.51.57/codegen/openapi/Makefile (about) 1 # Set theese variables 2 SWAGGER_VERSION ?= 4.1.0 3 DESTDIR ?= ./build 4 TDPROTO_OPEN_API_DIR ?= ./ 5 OPENAPI_FILE ?= v4.json 6 SWAGGER_SERVER_URL ?= https://web.tada.team 7 8 SWAGGER_URL = https://github.com/swagger-api/swagger-ui/archive/refs/tags/v${SWAGGER_VERSION}.tar.gz 9 SWAGGER_ARCHIVE = swagger.tar.gz 10 SWAGGER_DIST_PATH = swagger-ui-${SWAGGER_VERSION}/dist 11 DESTDIR_ABSOLUTE := $(shell readlink --canonicalize "${DESTDIR}") 12 # Escape dots for sed 13 SED_OPENAPI_FILE := $(shell printf '%s' '${OPENAPI_FILE}' | sed 's/\./\\\./g' ) 14 15 $(SWAGGER_ARCHIVE): 16 wget "${SWAGGER_URL}" --output-document "${SWAGGER_ARCHIVE}" 17 18 $(DESTDIR_ABSOLUTE): 19 mkdir --parents "${DESTDIR_ABSOLUTE}" 20 21 install: $(SWAGGER_ARCHIVE) $(DESTDIR_ABSOLUTE) 22 tar --extract --file "./${SWAGGER_ARCHIVE}" "${SWAGGER_DIST_PATH}" 23 cp -r "./${SWAGGER_DIST_PATH}" "${DESTDIR_ABSOLUTE}" 24 mv "${DESTDIR_ABSOLUTE}/dist/index.html" "${DESTDIR_ABSOLUTE}/" 25 echo ${SED_OPENAPI_FILE} ${OPENAPI_FILE} 26 sed --in-place \ 27 -e 's/\.\//dist\//g' \ 28 -e 's/url\: ".*"/url\: "${SED_OPENAPI_FILE}"/g' \ 29 "${DESTDIR_ABSOLUTE}/index.html" 30 cd "${TDPROTO_OPEN_API_DIR}" && \ 31 go run ./ \ 32 -server "${SWAGGER_SERVER_URL}" \ 33 > "${DESTDIR_ABSOLUTE}/${OPENAPI_FILE}"