25 lines
1.3 KiB
Makefile
25 lines
1.3 KiB
Makefile
COMPOSER_ARGS ?= --optimize-autoloader
|
|
COMPOSER_MEMORY_LIMIT ?= -1
|
|
CONTEXT += COMPOSER_ARGS
|
|
|
|
ifeq ($(SYMFONY_ENV), prod)
|
|
COMPOSER_ARGS += --classmap-authoritative --prefer-dist --no-dev --no-interaction
|
|
endif
|
|
ifeq ($(DRONE), true)
|
|
COMPOSER_ARGS += --no-progress
|
|
endif
|
|
|
|
define composer
|
|
$(call docker-compose-exec,$(DOCKER_SERVICE),COMPOSER_MEMORY_LIMIT=$(COMPOSER_MEMORY_LIMIT) SYMFONY_ENV=$(SYMFONY_ENV) composer $(1) $(COMPOSER_ARGS))
|
|
endef
|
|
|
|
define composer-require-vendor-binary
|
|
$(eval vendor:=$(1))
|
|
$(eval binary:=$(or $(2),$(lastword $(subst /, ,$(vendor)))))
|
|
$(eval version:=$(or $(addprefix :,$(3)),$(shell awk '/'$(subst /,\\/,$(vendor))'/ {gsub("[\",]","",$$2); print ":"$$2}' composer.json 2>/dev/null)))
|
|
$(eval DRYRUN_IGNORE := true)
|
|
$(eval COMPOSER_REQUIRE := $(shell $(call docker-compose-exec,$(DOCKER_SERVICE),[ -f vendor/$(vendor)/$(binary) ] || echo true)))
|
|
$(eval DRYRUN_IGNORE := false)
|
|
$(if $(COMPOSER_REQUIRE),$(call docker-compose-exec,$(DOCKER_SERVICE),mkdir -p vendor/$(vendor) && cd /tmp && COMPOSER_MEMORY_LIMIT=$(COMPOSER_MEMORY_LIMIT) SYMFONY_ENV=$(SYMFONY_ENV) composer require "$(vendor)$(version)" --prefer-source --no-interaction --dev && cd - && ln -s /tmp/vendor/$(vendor)/$(binary) vendor/$(vendor)/$(binary)))
|
|
endef
|