From b80d3bf7fe73255482e8a3c31109f56cbe80694e Mon Sep 17 00:00:00 2001 From: Pablo Guerino Date: Wed, 22 Mar 2017 10:14:31 -0300 Subject: [PATCH] skilld-docker-container: Windows support, issue #18 --- Makefile | 63 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 8fc0f4d11..955001d57 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,19 @@ # Read project name from .env file + +SYSTEM=$(shell uname) + +ifeq ($(SYSTEM),Windows) +WINDOWS=1 +COMPOSE_ARGS="-d" +$(shell cp -n .env.default .env) +$(shell cp -n ./src/docker/docker-compose.override.yml.default ./src/docker/docker-compose.override.yml) +else +COMPOSE_ARGS="" +WINDOWS=0 $(shell cp -n \.env.default \.env) $(shell cp -n \.\/src\/docker\/docker-compose\.override\.yml\.default \.\/src\/docker\/docker-compose\.override\.yml) +endif + include .env all: | include net build install info @@ -20,25 +33,25 @@ install: docker-compose pull @echo "Build and run containers..." docker-compose up -d - docker-compose exec php apk add --no-cache git - docker-compose exec -T php composer global require --prefer-dist "hirak/prestissimo:^0.3" + docker-compose exec $(ARGS) php apk add --no-cache git + docker-compose exec $(ARGS) -T php composer global require --prefer-dist "hirak/prestissimo:^0.3" make reinstall reinstall: cp src/drush_make/*.make.yml build/; \ - docker-compose exec php time drush make profile.make.yml --concurrency=$(shell nproc) --prepare-install --overwrite -y; \ + docker-compose exec $(ARGS) php time drush make profile.make.yml --concurrency=$(shell nproc) --prepare-install --overwrite -y; \ rm build/*.make.yml - docker-compose exec -T php composer config repositories.drupal composer https://packages.drupal.org/8 - docker-compose exec -T php time composer require -o --update-no-dev --no-suggest $(COMPOSER_REQUIRE) + docker-compose exec $(ARGS) -T php composer config repositories.drupal composer https://packages.drupal.org/8 + docker-compose exec $(ARGS) -T php time composer require -o --update-no-dev --no-suggest $(COMPOSER_REQUIRE) make -s front make -s si si: ifeq ($(PROJECT_INSTALL), config) - -docker-compose exec -T php time drush si config_installer --db-url=mysql://d8:d8@mysql/d8 --account-pass=admin -y config_installer_sync_configure_form.sync_directory=sync + -docker-compose exec $(ARGS) -T php time drush si config_installer --db-url=mysql://d8:d8@mysql/d8 --account-pass=admin -y config_installer_sync_configure_form.sync_directory=sync else - docker-compose exec -T php drush si $(PROFILE_NAME) --db-url=mysql://d8:d8@mysql/d8 --account-pass=admin -y --site-name="$(SITE_NAME)" - docker-compose exec php ash -c "drush locale-check && drush locale-update" + docker-compose exec $(ARGS) -T php drush si $(PROFILE_NAME) --db-url=mysql://d8:d8@mysql/d8 --account-pass=admin -y --site-name="$(SITE_NAME)" + docker-compose exec $(ARGS) php ash -c "drush locale-check && drush locale-update" endif make -s chown make -s info @@ -56,12 +69,12 @@ endif chown: # Use this goal to set permissions in docker container - docker-compose exec php /bin/sh -c "chown $(shell id -u):$(shell id -g) /var/www/html -R" + docker-compose exec $(ARGS) php /bin/sh -c "chown $(shell id -u):$(shell id -g) /var/www/html -R" # Need this to fix files folder - docker-compose exec php /bin/sh -c "chown www-data: /var/www/html/sites/default/files -R" + docker-compose exec $(ARGS) php /bin/sh -c "chown www-data: /var/www/html/sites/default/files -R" exec: - docker-compose exec php ash + docker-compose exec $(ARGS) php ash clean: info @echo "Removing networks for $(COMPOSE_PROJECT_NAME)" @@ -79,7 +92,7 @@ endif front: @echo "Building front tasks..." docker run --rm -v $(shell pwd)/src/themes/$(THEME_NAME):/work skilldlabs/frontend:zen; \ - docker-compose exec php rm -rf themes/custom/$(THEME_NAME)/node_modules + docker-compose exec $(ARGS) php rm -rf themes/custom/$(THEME_NAME)/node_modules make -s chown iprange: @@ -87,26 +100,26 @@ iprange: devel: @echo "Setting up permissions ..." - docker-compose exec php find sites/default -type d -exec chmod 777 {} \; - docker-compose exec php find sites/default -type f -exec chmod 666 {} \; + docker-compose exec $(ARGS) php find sites/default -type d -exec chmod 777 {} \; + docker-compose exec $(ARGS) php find sites/default -type f -exec chmod 666 {} \; @echo "Setting up settings.yml ..." - docker-compose exec php cp sites/default/default.services.yml sites/default/services.yml + docker-compose exec $(ARGS) php cp sites/default/default.services.yml sites/default/services.yml @echo "Setting up settings.local.yml ..." - docker-compose exec php cp sites/example.settings.local.php sites/default/settings.local.php + docker-compose exec $(ARGS) php cp sites/example.settings.local.php sites/default/settings.local.php @echo "Setting up kint ..." - -docker-compose exec php composer require drupal/devel - -docker-compose exec php drush en devel devel_generate kint -y - -docker-compose exec php drush pm-uninstall dynamic_page_cache internal_page_cache -y + -docker-compose exec $(ARGS) php composer require drupal/devel + -docker-compose exec $(ARGS) php drush en devel devel_generate kint -y + -docker-compose exec $(ARGS) php drush pm-uninstall dynamic_page_cache internal_page_cache -y @echo "Setting up Twig in debug mode ..." - docker-compose exec php sed -i "s:debug\: false:debug\: true:g" sites/default/services.yml - docker-compose exec php sed -i "s:auto_reload\: null:auto_reload\: false:g" sites/default/services.yml - docker-compose exec php sed -i "s:cache\: true:cache\: false:g" sites/default/services.yml + docker-compose exec $(ARGS) php sed -i "s:debug\: false:debug\: true:g" sites/default/services.yml + docker-compose exec $(ARGS) php sed -i "s:auto_reload\: null:auto_reload\: false:g" sites/default/services.yml + docker-compose exec $(ARGS) php sed -i "s:cache\: true:cache\: false:g" sites/default/services.yml @echo "Finishing: clean up / cache rebuild ..." - -docker-compose exec php drush cr + -docker-compose exec $(ARGS) php drush cr @make -s chown phpcs: @@ -118,8 +131,8 @@ phpcbf: docker run --rm -v $(shell pwd)/src/$(PROFILE_NAME):/work skilldlabs/docker-phpcs-drupal phpcbf --standard=DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info . cex: - docker-compose exec php ash -c "drush cex -y" + docker-compose exec $(ARGS) php ash -c "drush cex -y" ifneq ($(PROJECT_INSTALL), config) rm -rf config/sync/* - cp -R build/$(shell docker-compose exec php drush ev 'echo substr(\Drupal::service("config.storage.sync")->getFilePath("drush"), 0, -10);')/* config/sync + cp -R build/$(shell docker-compose exec $(ARGS) php drush ev 'echo substr(\Drupal::service("config.storage.sync")->getFilePath("drush"), 0, -10);')/* config/sync endif