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}"