Skip to content
Snippets Groups Projects
Select Git revision
  • f26dbe0d14f12238555fd617996bed873685acdb
  • master default protected
  • feature/3149-LocaleCodeAsID-Implementation
  • feature/PRXS-3383-CollectionsRankSortAPI
  • fix/PRXS-3401-ValidateValidationOpts
  • feature/3149-LocaleCodeAsID-Feature
  • feature/PRXS-3383-CollectionsSort
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • feature/PRXS-3218-HideTemplateActions
  • feature/PRXS-3234-PruneIdents
  • feature/3146-UpdateItemStorageInterface
  • feature/3274-ObjectIndexesFixes
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

locale.go

Blame
  • Makefile 3.68 KiB
    .PHONY: proto logging mocks .FORCE
    
    SHELL = bash
    
    PROTODIR=perxis-proto/proto
    DSTDIR=./proto
    ALLPROTO?=$(shell find -L $(PROTODIR) -name '*.proto' )
    # Убираем status.proto нужен только для front
    PROTOFILES=	$(filter-out $(PROTODIR)/status/status.proto, $(ALLPROTO))
    PROTOGOFILES=$(PROTOFILES:.proto=.pb.go)
    PROTOGOGRPCFILES=$(PROTOFILES:.proto=_grpc.pb.go)
    
    ACCESSLOGGING=$(shell find -name "logging_middleware.go" -type f)
    ERRORLOGGING=$(shell find -name "error_logging_middleware.go" -type f)
    SERVICETELEMETRY=$(shell find -name "telemetry_middleware.go" -type f)
    SERVICEMIDDLEWARE=$(shell find -name "middleware.go" -type f)
    SERVICERECOVERING=$(shell find -name "recovering_middleware.go" -type f)
    
    # Генерация grpc-клиентов для go
    proto: protoc-check protoc-gen-go-check $(PROTOGOFILES)
    	@echo "Generate Go from proto files"
    	@find $(PROTODIR) -name '*.proto'
    
    %.pb.go: %.proto
    	@protoc -I=$(PROTODIR) --experimental_allow_proto3_optional --go_out=$(DSTDIR) --go-grpc_out=$(DSTDIR) --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative "$<"
    
    proto-clean:
    	@rm -r $(DSTDIR)/*
    
    # Helpers
    #
    # Проверка, что установлен компилятор для Protobuf
    protoc-check:
    ifeq (,$(shell which protoc))
    	$(error "Protocol Buffers not found. Run \"brew install protobuf\" \
    	or visit \"https://grpc.io/docs/protoc-installation/#install-using-a-package-manager\" for more.\n")
    endif
    
    # Проверяется, установлен ли 'protoc-gen-go' - плагин для генерации GRPC-Go клиента
    protoc-gen-go-check:
    ifeq (,$(wildcard $(GOPATH)/bin/protoc-gen-go))
    	$(error "Protocol Buffers Go plugin not found. \
    	Run \"go install google.golang.org/protobuf/cmd/protoc-gen-go@latest google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest\" \
    	or visit \"https://grpc.io/docs/languages/go/quickstart/\" for more.\n")
    endif
    
    # Генерация логгирования (access & error) для всех сервисов. Предполагается наличие файлов `logging_middleware.go/error_middleware.go`
    # с директивой go:generate и командой генерации кода в директориях `/pkg` сервисов
    # Для установки инструмента генерации выполнить команду `go get -u github.com/hexdigest/gowrap/cmd/gowrap`
    logging: $(ERRORLOGGING) $(ACCESSLOGGING)
    
    %/middleware/logging_middleware.go: .FORCE
    	@echo "$@"
    	@go generate "$@"
    
    %/middleware/error_logging_middleware.go: .FORCE
    	@echo "$@"
    	@go generate "$@"
    
    telemetry: $(SERVICETELEMETRY)
    
    %/middleware/telemetry_middleware.go: % .FORCE
    	@echo "$@"
    	@go generate "$@"
    
    middleware: $(SERVICEMIDDLEWARE)
    
    %/middleware/middleware.go: % .FORCE
    	@echo "$@"
    	@go generate "$@"
    
    recovering: $(SERVICERECOVERING)
    
    %/middleware/recovering_middleware.go: % .FORCE
    	@echo "$@"
    	@go generate "$@"
    
    # Генерация моков для всех интерфейсов, найденных в директории. Выходные файлы с моками сохраняются в `./mocks`
    MOCKSDIRS?=$(shell find . -name "service.go" -exec dirname {} \;)
    MOCKS=$(MOCKSDIRS:=/mocks)
    PROTOMOCKS=$(PROTODIR:=/mocks)
    
    mocks: $(PROTOMOCKS)
    	@echo "Generate mocks $<"
    
    %/mocks: %
    	@echo "$@ - $<"
    	@mockery --log-level="error" --all --dir "$<" --output="$@"
    
    mocks-clean:
    	@rm -rf $(MOCKS)
    
    
    # Deprecated
    # Генерация кода для go-kit при помощи 'github.com/devimteam/microgen' - go-kit перешел на github.com/recolabs/microgen/cmd/microgen
    #MICROGENFILES?=$(shell find . -name "service.go" -exec grep -Ril "microgen" {} \;)
    #microgen: $(MICROGENFILES)
    #
    #%/service.go: % .FORCE
    #	-microgen -file "$@" -out "$<"