FIG=docker-compose
RUN=$(FIG) run --rm
EXEC=$(FIG) exec

ifneq (,$(wildcard ./.env))
	include .env
	export
endif

start: copy-files
	$(FIG) up --build -d

stop:
	$(FIG) down

copy-files: docker-compose.override.yml .env web/sites/default/settings.php web/sites/default/settings.local.php .git/hooks/pre-commit phpunit.xml

install: vendor drupal-install packages build

vendor: composer.lock
	$(EXEC) php composer install -o

drupal-install:
	$(EXEC) php vendor/bin/drush site:install minimal -y --account-name=${INSTALL_ACCOUNT_NAME} --account-pass=${INSTALL_ACCOUNT_PASS} --account-mail=${INSTALL_ACCOUNT_MAIL} --existing-config

clear:
	$(EXEC) php vendor/bin/drush cr

login:
	$(EXEC) php vendor/bin/drush uli

config-import:
	$(EXEC) php vendor/bin/drush config:import -y

config-export:
	$(EXEC) php vendor/bin/drush config:export -y

packages:
	$(EXEC) node pnpm install

build:
	$(EXEC) node pnpm build

watch:
	$(EXEC) node pnpm dev

pull:
	git pull
	$(EXEC) php composer install -o
	$(EXEC) php vendor/bin/drush updatedb -y
	$(EXEC) php vendor/bin/drush config:import -y
	$(EXEC) php vendor/bin/drush locale:check
	$(EXEC) php vendor/bin/drush locale:update
	$(EXEC) php vendor/bin/drush cache:rebuild

test:
	$(EXEC) php vendor/bin/phpunit
	$(EXEC) php vendor/bin/phpstan analyse

docker-compose.override.yml: docker-compose.override.yml.dist
	cp docker-compose.override.yml.dist docker-compose.override.yml

.env: .env.dist
	cp .env.dist .env

.gitlab-ci.yml: .gitlab-ci.yml.dist
	cp .gitlab-ci.yml.dist .gitlab-ci.yml

web/sites/default/settings.php: web/sites/default/default.settings.php
	cp web/sites/default/default.settings.php web/sites/default/settings.php

web/sites/default/settings.local.php: web/sites/example.settings.local.php
	cp web/sites/example.settings.local.php web/sites/default/settings.local.php

.git/hooks/pre-commit: docker/git/pre-commit
	cp docker/git/pre-commit .git/hooks/pre-commit

phpunit.xml: phpunit.xml.dist
	cp phpunit.xml.dist phpunit.xml
