From de4ef81615eae8e03a16dcc4df054a233c3f70c0 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 27 Oct 2017 18:47:19 -0200 Subject: Drupal config --- share/drupal8/Makefile | 168 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 share/drupal8/Makefile (limited to 'share/drupal8/Makefile') diff --git a/share/drupal8/Makefile b/share/drupal8/Makefile new file mode 100644 index 0000000..3ba982f --- /dev/null +++ b/share/drupal8/Makefile @@ -0,0 +1,168 @@ +# +# Makefile for a Drupal 8 Website +# + +# Parameters +CORE = 8 +PROJECT = drupal +ENV = dev +DATE = $(shell date +%Y%m%d) +CWD = $(shell pwd) +DESTDIR ?= vendor +DRUPAL = $(DESTDIR)/drupal-$(CORE) +DRUSH = drush -r $(DRUPAL) -l $(PROJECT) + +# Setup production environment +production: submodules post_receive drush settings ownership + +# Setup a development environment +#develop: submodules vagrant +develop: submodules kvmx + rm -rf $(DRUPAL)/sites/default + ln -s $(PROJECT) $(DRUPAL)/sites/default + vagrant ssh -c "$(DRUSH) pm-enable devel -y" + +# Install the platform +platform: drupal drush settings symlinks initdb cache + +# Keep code in sync +sync-code: update drush cache import + +# Initialize and update git submodules +submodules: + git submodule sync --recursive + git submodule update --init --recursive + +# Setup the virtual machine using vagrant +vagrant: + vagrant up + +# Setup the virtual machine using kvmx +kvmx: + kvmx up + +# Download drupal, setup folder structure and config file +# +# You might want to use "-n" to avoid _drush_recursive_copy cpu hog if previous +# installation already exists when using 9p filesystem +drupal: + #rm -rf $(DESTDIR)/drupal-$(CORE)* && drush pm-download -y -v drupal-$(CORE) --destination=/tmp/drupal && mv /tmp/drupal/drupal-$(CORE).* $(DESTDIR)/ + #drush pm-download -y -v drupal-$(CORE) --destination=$(DESTDIR) + #( cd $(DRUPAL)/.. && ln -s drupal-$(CORE).* drupal-$(CORE) ) + BASE=$(DESTDIR) drupal download 8 + +# Make the needed symlinks +symlinks: + ln -sf -t $(DRUPAL)/sites/$(PROJECT)/ $(CWD)/files + ln -sf -t $(DRUPAL)/sites/$(PROJECT)/ $(CWD)/config + ln -sf -t $(DRUPAL)/sites/$(PROJECT)/ $(CWD)/themes + ln -sf -t $(DRUPAL)/sites/$(PROJECT)/ $(CWD)/modules + ln -sf -t $(DRUPAL)/sites/$(PROJECT)/ $(CWD)/libraries + +# Default settings +default_settings: + test -s sites.php || cp $(DRUPAL)/sites/example.sites.php sites.php + test -s settings.dev.php || cp $(DRUPAL)/sites/default/default.settings.php settings.dev.php + test -s services.dev.yml || cp $(DRUPAL)/sites/default/default.services.yml services.dev.yml + +# Setup drupal settings +settings: default_settings + test -s $(DRUPAL)/sites/sites.php || cp sites.php $(DRUPAL)/sites/sites.php + mkdir -p $(DRUPAL)/sites/$(PROJECT) + test -s $(DRUPAL)/sites/$(PROJECT)/settings.$(ENV).php || cp settings.dev.php $(DRUPAL)/sites/$(PROJECT)/settings.$(ENV).php + test -s $(DRUPAL)/sites/$(PROJECT)/settings.php || ln -s settings.$(ENV).php $(DRUPAL)/sites/$(PROJECT)/settings.php + test -s $(DRUPAL)/sites/$(PROJECT)/services.$(ENV).yml || cp services.dev.yml $(DRUPAL)/sites/$(PROJECT)/services.$(ENV).yml + test -s $(DRUPAL)/sites/$(PROJECT)/services.yml || ln -s services.$(ENV).yml $(DRUPAL)/sites/$(PROJECT)/services.yml + chmod 640 $(DRUPAL)/sites/$(PROJECT)/settings.php + chmod 640 $(DRUPAL)/sites/$(PROJECT)/services.yml + +# Fix ownership +ownership: + sudo chown -R $(PROJECT). $(DRUPAL)/sites/$(PROJECT) + sudo chmod 755 $(DRUPAL)/sites/$(PROJECT) + +# Run drush makefile +drush: + sudo drush make -n --no-core drupal.make.yml $(DRUPAL) + +# Update the database +updatedb: + $(DRUSH) updatedb -y + +# Load the database dump, clear the drupal cache and fix image paths +# See https://www.drupal.org/node/628130 +initdb: + test -s sql/dumps/latest && gzip -dc sql/dumps/latest.sql.gz | $(DRUSH) sql-cli || true + test -s sql/dumps/latest && $(DRUSH) updatedb -y || true + +# Dump the database +dumpdb: + mkdir -p sql/dumps + rm -f sql/dumps/latest.sql.gz + rm -f sql/dumps/$(DATE).sql.gz + $(DRUSH) sql-dump > sql/dumps/$(DATE).sql + ( cd sql/dumps && gzip $(DATE).sql && ln -s $(DATE).sql.gz latest.sql.gz ) + +# Clear drupal cache +cache: + $(DRUSH) cache-rebuild + +# Destroy the database +destroydb: + echo "DROP DATABASE $(PROJECT); CREATE DATABASE $(PROJECT);" | $(DRUSH) sql-cli + +# Reinitializes the database +reinitdb: destroydb initdb + +# Cleanup develop environment +clean: + vagrant halt + vagrant destroy -f + rm -rf vendor/drupal* + +# Export configuration +export: + $(DRUSH) config-export -y + +# Import configuration +import: + $(DRUSH) config-import -y + +# Diff configuration +# Needs https://github.com/eriktufvesson/drush-config-diff +diff: + $(DRUSH) config-diff + +# Update the codebase +update: pull submodules + +# Upgrade modules +upgrade-modules: + $(DRUSH) up + +# Upgrade drupal +upgrade-drupal: + BASE=/vagrant/vendor drupal upgrade $(OLD) $(NEW) + +# Configure update hook on remote host +post_receive: + git config receive.denyCurrentBranch ignore + cd .git/hooks && ln -sf ../../bin/post-receive + +# Pull changes +pull: + git pull + +# Reset the working copy +reset: + #git reset HEAD + git checkout -f + +# Fix local folder permission +perms: + chmod 755 . + +# Deploy code pushed on remote host +deploy: perms reset submodules + drush cache-rebuild + drush config-import -y -- cgit v1.2.3