diff --git a/Makefile b/Makefile index 87bcd30..c0466a1 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,11 @@ ENV := "local" UNAME_S := $(shell uname -s) CONFIG_PATH := .build/config/ SWAGGER_DOCS_PATH := internal/http/swagger/docs +ifeq ($(UNAME_S),Darwin) +SED_INPLACE := -i '' +else +SED_INPLACE := -i +endif ifeq ($(OS),Windows_NT) CONFIG_PATH := $(subst /,\,$(CONFIG_PATH)) @@ -60,11 +65,8 @@ docs: $(BIN_DIR)/swag @mkdir -p $(SWAGGER_DOCS_PATH) @TEMP_MAIN="cmd/main_temp.go" && \ cp cmd/main.go $$TEMP_MAIN && \ - if [[ "$$OSTYPE" == "darwin"* ]]; then \ - sed -i '' "s/localhost:8000/$(HOST)/g" $$TEMP_MAIN; \ - else \ - sed -i "s/localhost:8000/$(HOST)/g" $$TEMP_MAIN; \ - fi && \ + ESC_HOST=$$(printf '%s\n' "$(HOST)" | sed -e 's/[\\\/&]/\\\\&/g') && \ + sed $(SED_INPLACE) "s|localhost:8000|$${ESC_HOST}|g" $$TEMP_MAIN && \ $(BIN_DIR)/swag init -g $$TEMP_MAIN -o $(SWAGGER_DOCS_PATH) --parseDependency --parseInternal && \ rm -f $$TEMP_MAIN && \ echo "Swagger документация успешно сгенерирована с host: $(HOST)" && \