diff --git a/.cruft.json b/.cruft.json deleted file mode 100644 index 5363729..0000000 --- a/.cruft.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "template": "git@gitlab.com:agaric/python/amanita.git", - "commit": "cda28017bb88549bd91a5f372a8a30af818a66c9", - "skip": [ - ".gitlab-ci.yml", - "drush/sites/self.site.yml" - ], - "checkout": null, - "context": { - "cookiecutter": { - "project_name": "experienceolympic-com", - "project_slug": "experienceolympic-com", - "composer_source": "drutopia", - "hostname": "experienceolympic.com", - "live_uri": "experienceolympic-live.drutopia.org", - "test_uri": "experienceolympic-test.drutopia.org", - "user": "experienceolympic", - "test_user": "experienceolympic_test", - "live_user": "experienceolympic_live", - "sitedir": "site", - "webdir": "web", - "testuser_homedir": "/home/experienceolympic_test", - "liveuser_homedir": "/home/experienceolympic_live", - "testuser_sitedir": "/home/experienceolympic_test/site", - "liveuser_sitedir": "/home/experienceolympic_live/site", - "testuser_webdir": "/home/experienceolympic_test/site/web", - "liveuser_webdir": "/home/experienceolympic_live/site/web", - "theme_name": "theme", - "sync_method": "ssh", - "_template": "git@gitlab.com:agaric/python/amanita.git" - } - }, - "directory": "drupal_template" -} diff --git a/.gitignore b/.gitignore index 9a2bf0e..70e658f 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,3 @@ sites/simpletest # Ignore database backup directory. /backups/ - -# Ignore build directory. -/build/ diff --git a/drush/README.md b/drush/README.md deleted file mode 100644 index 8c85c14..0000000 --- a/drush/README.md +++ /dev/null @@ -1 +0,0 @@ -This directory contains commands, configuration and site aliases for Drush. See http://packages.drush.org/ for a directory of Drush commands installable via Composer. diff --git a/drush/drush.yml b/drush/drush.yml deleted file mode 100644 index 58cf098..0000000 --- a/drush/drush.yml +++ /dev/null @@ -1,29 +0,0 @@ -command: - sql: - dump: - options: - # Omit cache and similar tables (including during a sql:sync). - structure-tables-key: common - # Don't bother pulling migration tables at all. - skip-tables-key: common -sql: - # List of tables whose *data* is skipped by the 'sql-dump' and 'sql-sync' - # commands when the "--structure-tables-key=common" option is provided. - # You may add specific tables to the existing array or add a new element. - structure-tables: - common: - - cache - - 'cache_*' - - history - - 'search_*' - - 'sessions' - - 'watchdog' - # List of tables to be omitted entirely from SQL dumps made by the 'sql-dump' - # and 'sql-sync' commands when the "--skip-tables-key=common" option is - # provided on the command line. This is useful if your database contains - # non-Drupal tables used by some other application or during a migration for - # example. You may add new tables to the existing array or add a new element. - skip-tables: - common: - - 'migration_*' - diff --git a/drush/sites/self.site.yml b/drush/sites/self.site.yml deleted file mode 100644 index bbea6f3..0000000 --- a/drush/sites/self.site.yml +++ /dev/null @@ -1,18 +0,0 @@ -live: - host: drutopia.org - paths: - drush-script: /home/experienceolympic_live/site/vendor/bin/drush - env-vars: - PATH: /home/experienceolympic_live/bin:/usr/bin:/bin - root: /home/experienceolympic_live/site/web - uri: 'experienceolympic-live.drutopia.org' - user: experienceolympic_live -test: - host: drutopia.org - paths: - drush-script: /home/experienceolympic_test/site/vendor/bin/drush - env-vars: - PATH: /home/experienceolympic_test/bin:/usr/bin:/bin - root: /home/experienceolympic_test/site/web - uri: 'experienceolympic-test.drutopia.org' - user: experienceolympic_test diff --git a/scripts/build.sh b/scripts/build.sh deleted file mode 100755 index e14ccbe..0000000 --- a/scripts/build.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -set -euo pipefail -# ~SCRIPT~ update.sh -# * Pass in a path to drush, or use a default: -# * Runs post-deploy commands to update Drupal - -# ~OPTIONAL~ -# COMPOSER_ARGS: -# Composer command and flags to run -# Defaults to "install --no-dev --no-scripts --optimize-autoload" - -# Load env vars, if supplied -[ $# -eq 1 ] && source "env-${1}" - -# Complain/stop if we don't have needed values -[ -z ${BUILD_ROOT:-} ] && { echo ">> Missing ENV var: BUILD_ROOT"; exit 1 ; } - -# Set defaults -[ -z ${COMPOSER_ARGS:- } ] && COMPOSER_ARGS="install --no-dev --no-scripts --optimize-autoloader" - -# Build dir has to exist first (if only for a moment)... -[ ! -d ${BUILD_ROOT} ] && { mkdir -p ${BUILD_ROOT} || true ; } - -# Normalize paths (e.g. "./build" => "/project/thisone/build)": -BUILD_ROOT="$(cd "${BUILD_ROOT}" && pwd)" -proj_dir="$(cd $(dirname ${0})/../ && pwd)" # Parent of this script folder. - -# Wipe out the build dir, so long as it is somewhere OTHER than the project root. -if [ "${BUILD_ROOT}" != "${proj_dir}" ] ; then - # wipe out existing target, and get latest code. - rm -rf ${BUILD_ROOT} - mkdir ${BUILD_ROOT} - git archive HEAD | tar -x -C ${BUILD_ROOT} - cd ${BUILD_ROOT} - composer ${COMPOSER_ARGS} -fi \ No newline at end of file diff --git a/scripts/css.sh b/scripts/css.sh deleted file mode 100755 index 5b9984b..0000000 --- a/scripts/css.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -euo pipefail -# Confirmed with echo `pwd` that as long as we use via composer it's always in -# /var/www/html (aka the project root). -proj_dir="$(cd $(dirname ${0})/../ && pwd)" # Parent of this script folder. -[ "$proj_dir" != "/var/www/html" ] && { echo "Script running from unexpected path - are you running within ddev, as you should? Try ddev composer css"; exit 1; } -cd /var/www/html/web/themes/custom/theme -# Yarn CSS only -yarn node-sass -r ./src --output ./dist --include-path node_modules --include-path src --output-style compressed --quiet -yarn postcss ./dist/{**,.,*}.css --replace --verbose --env production diff --git a/scripts/deploy.sh b/scripts/deploy.sh deleted file mode 100755 index d9e0809..0000000 --- a/scripts/deploy.sh +++ /dev/null @@ -1,220 +0,0 @@ -#!/bin/bash -set -euo pipefail -# ~SCRIPT~ deploy.sh -# * Copies a build to the specified target and performs updates. -# * The build should already be prepared elsewhere. -# * Run from project root folder. -# * Will create database dumps (using drush) -# * By default, runs all related drush commands. - -####################################### -# Using deploy.sh -####################################### -# ~REQUIRED~ -# SSH_TARGET: -# Server to push code to/run drush commands on (host aliases work if configured in $HOME/.ssh/config) -# DEPLOY_ENV: -# A label for the environment, used to name backup files, and select settings file -# Defaults to ${CI_ENVIRONMENT_NAME}, if available, which is automatically set by gitlab-ci -# DEPLOY_ROOT: -# Directory name for composer file, containing vendor+config sub-folders - -# ~OPTIONAL~ -# DRUPAL_DIR: -# Defaults to web -# BACKUP_DIR: -# Defaults to ~/backups -# BUILD_ROOT: -# Defaults to ${PWD} -# DRUSH_DISABLE: -# Set to "1" to disable ALL drush commands. -# May be needed if an install failed or is not already present. -# REMOTE_DRUSH: -# Defaults to ${DEPLOY_ROOT}/vendor/bin/drush -# UPDATE_SCRIPT: -# The post-deploy update routine, specified from perspective of the project root. -# This should know how to find drush or can use $1 for it (see update.sh). -# Defaults to scripts/update.sh -# UPDATE_DISABLE: -# Set to "1" to disable only update commands (e.g. drush updb) -# Note: system will be left in maintenance mode! -# drush state:set system.maintenance_mode FALSE -# DEBUG: -# Set to "1" to call show-vars.sh -# WEB_EXCLUDES: -# --exclude .well-known --exclude sites/default/files --exclude sites/default/settings.*.php" - -####################################### -# Load env vars, if supplied -####################################### -[ $# -eq 1 ] && source "env-${1}" - -####################################### -# DEFAULTS -####################################### -_backup_dir="~/backups" -_config_dir="config" # Folder under deploy root with config -_remote_drush="${DEPLOY_ROOT:-}/vendor/bin/drush" # Full remote path to drush used by ssh -_update_script="scripts/update.sh" -_web_dir="web" # Under deploy root, the Drupal public web directory -_web_excludes='--exclude "/.well-known" --exclude "/sites/default/files" --exclude "/sites/default/settings.*.php' -# Note: `_php_settings_dir` cannot be included here; Default directly in optionals block - -####################################### -# Check for required variables: -####################################### -[ -z "${DEPLOY_ENV:-}" ] && DEPLOY_ENV="${CI_ENVIRONMENT_NAME:-}" -[ -z "${DEPLOY_ENV:-}" ] && { echo 'Missing ENV var: CI_ENVIRONMENT_NAME/DEPLOY_ENV'; exit 1; } -[ -z "${DEPLOY_ROOT:-}" ] && { echo "Missing ENV var: DEPLOY_ROOT"; exit 1; } -[ -z "${SSH_TARGET:-}" ] && { echo "Missing ENV var: SSH_TARGET"; exit 1; } - -####################################### -# Optional variable setup from defaults: -####################################### -[ -z "${BACKUP_DIR:-}" ] && BACKUP_DIR="${_backup_dir}" -[ -z "${BUILD_ROOT:-}" ] && BUILD_ROOT="./" -[ -z "${CONFIG_DIR:-}" ] && CONFIG_DIR="${_config_dir}" # NO trailing slash! -[ -z "${DRUPAL_DIR:-}" ] && DRUPAL_DIR="${_web_dir}" # Name of Drupal public sub-folder -[ -z "${REMOTE_DRUSH:-}" ] && REMOTE_DRUSH="${_remote_drush}" # Full path to remote drush -[ -z "${UPDATE_SCRIPT:-}" ] && UPDATE_SCRIPT="${_update_script}" -[ -z "${WEB_EXCLUDES:-}" ] && WEB_EXCLUDES="${_web_excludes}" -[ -z "${DRUSH_DISABLE:-}" ] && DRUSH_DISABLE="0" -[ -z "${UPDATE_DISABLE:-}" ] && UPDATE_DISABLE="0" -[ -z "${PHP_SETTINGS_DIR:-}" ] && PHP_SETTINGS_DIR="${DRUPAL_DIR}/sites/default" - -# Be sure to not overwrite any server-only .user.ini -if [ ! -f ${BUILD_ROOT}/${DRUPAL_DIR}/.user.ini ]; then - WEB_EXCLUDES="--exclude .user.ini ${WEB_EXCLUDES}" -fi - -if [ "${DEBUG:-0}" == "1" ]; then - #./scripts/show-vars.sh # per-env - echo "[DEBUG] IN-USE SETTINGS:" - echo "SSH_TARGET=$SSH_TARGET" - echo "DEPLOY_ENV=${DEPLOY_ENV}" - echo "DEPLOY_ROOT=${DEPLOY_ROOT}" - echo "BUILD_ROOT=${BUILD_ROOT}" - echo "CONFIG_DIR=${CONFIG_DIR}" - echo "DRUPAL_DIR=${DRUPAL_DIR}" - echo "REMOTE_DRUSH=${REMOTE_DRUSH}" - echo "BACKUP_DIR=${BACKUP_DIR}" - echo "DRUSH_DISABLE=${DRUSH_DISABLE}" - echo "UPDATE_SCRIPT=${UPDATE_SCRIPT}" - echo "UPDATE_DISABLE=${UPDATE_DISABLE}" - echo "WEB_EXCLUDES=${WEB_EXCLUDES}" - exit 0 -fi - -####################################### -# Functions -####################################### -function drush_enabled() { - if [ "${DRUSH_DISABLE}" == "1" ] - then - return 1 #1 is false (so, disabled) - else - return 0 #0 is true (enabled) because...bash - fi -} - -####################################### -# Check drush/site status -####################################### -echo "Starting deployment to ${DEPLOY_ENV}" -drush_enabled || echo "Note: Drush commands are disabled. Commands marked [D] will not execute." -echo "Verify connectivity (print user & working directory)" -ssh ${SSH_TARGET} "whoami; pwd" -echo "[D] Verify drush functionality (cr, status bootstrap)" -drush_enabled && ssh ${SSH_TARGET} "${REMOTE_DRUSH} cr" -# Expected good result: "Drupal bootstrap : Successful", otherwise empty (but drush returns 0) -ssh_cmd="${REMOTE_DRUSH} status --fields=bootstrap" -drush_enabled && { [[ $(ssh ${SSH_TARGET} "${ssh_cmd}") = *Successful* ]] || { echo ">> Drush failed bootstrap!"; exit 1; } ; } - -####################################### -# Enable maintenance mode -####################################### -# echo "[D] Set maintenance mode ON" -# drush_enabled && ssh ${SSH_TARGET} "${REMOTE_DRUSH} state:set system.maintenance_mode TRUE" - -####################################### -# Perform a database backup -####################################### -backup_file="${DEPLOY_ENV}_$(date +%Y%m%dT%H%M%S).sql.gz" -ssh_cmd="[ ! -d ${BACKUP_DIR} ] && mkdir -p ${BACKUP_DIR} || true" -echo "Using backup dir '${BACKUP_DIR}' (created as needed)" -ssh "${SSH_TARGET}" "$ssh_cmd" -ssh_cmd="${REMOTE_DRUSH} sql-dump | gzip > ${BACKUP_DIR}/$backup_file" -echo "[D] Creating backup file ${backup_file}" -drush_enabled && ssh "${SSH_TARGET}" "${ssh_cmd}" - -####################################### -# DEPLOY CODE: -####################################### -# Check for sub-dirs... -ssh_cmd="[ ! -d ${DEPLOY_ROOT}/${CONFIG_DIR} ] && mkdir -p ${DEPLOY_ROOT}/${CONFIG_DIR} || true" -echo "Ensure '${CONFIG_DIR}' exists" -ssh "${SSH_TARGET}" "$ssh_cmd" -ssh_cmd="[ ! -d ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default ] && mkdir -p ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default || true" -echo "Ensure '${DRUPAL_DIR}/sites/default exists'" -ssh "${SSH_TARGET}" "$ssh_cmd" - -# Disable write protect... -echo "Disabling write protection on settings folder and files." -ssh_cmd="chmod ug+w ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default/" -ssh ${SSH_TARGET} ${ssh_cmd} -ssh_cmd="find ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default/ -maxdepth 1 -type f -name 'settings*php' -exec chmod ug+w '{}' \;" -ssh ${SSH_TARGET} ${ssh_cmd} -# Rsync's -printf "Pushing latest codebase: config…" -rsync -rz --delete ${BUILD_ROOT}/${CONFIG_DIR}/ ${SSH_TARGET}:${DEPLOY_ROOT}/config -printf "\b ✓, ${DRUPAL_DIR}…" -rsync -rz --delete ${WEB_EXCLUDES} ${BUILD_ROOT}/${DRUPAL_DIR}/ ${SSH_TARGET}:${DEPLOY_ROOT}/${DRUPAL_DIR} -printf "\b ✓, vendor…" -rsync -rz --delete --links ${BUILD_ROOT}/vendor ${SSH_TARGET}:${DEPLOY_ROOT}/ -printf "\b ✓, scripts…" -[ -d ./scripts ] && rsync -rz --delete ${BUILD_ROOT}/scripts ${SSH_TARGET}:${DEPLOY_ROOT}/ -printf "\b ✓, composer…" -scp -q composer.json ${SSH_TARGET}:${DEPLOY_ROOT}/composer.json -printf "\b ✓, settings…" -scp -q ${BUILD_ROOT}/${PHP_SETTINGS_DIR}/settings.${DEPLOY_ENV}.php ${SSH_TARGET}:${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default/settings.local.php -printf "\b ✓\nFile sync complete!\n" -# Re-protect settings -echo "Enabling write protection on settings folder and files." -ssh_cmd="[ -d ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default ] && chmod ug-w ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default/" -ssh ${SSH_TARGET} ${ssh_cmd} -ssh_cmd="find ${DEPLOY_ROOT}/${DRUPAL_DIR}/sites/default/ -maxdepth 1 -type f -name 'settings*php' -exec chmod ug-w '{}' \;" -ssh ${SSH_TARGET} ${ssh_cmd} - -####################################### -# [P|re]load database -####################################### -if [ ! -z "${PRELOAD_DB_FILE:-}" -a "${DEPLOY_ENV}" != "live" -a "${DEPLOY_ENV}" != "prod" ]; then - ssh_cmd="${REMOTE_DRUSH} sql-drop -y" - echo "[D] Dropping existing database" - drush_enabled && ssh "${SSH_TARGET}" "${ssh_cmd}" - if drush_enabled; then - ssh_cmd="${REMOTE_DRUSH} sqlc < ${PRELOAD_DB_FILE}" - echo "[D] Loading database from ${PRELOAD_DB_FILE}" - ssh "${SSH_TARGET}" "${ssh_cmd}" - else - echo "Fallback: Load database file using mysql (requires .my.cnf)" - ssh_cmd="mysql < ${PRELOAD_DB_FILE}" - echo "Loading database from ${PRELOAD_DB_FILE}" - ssh "${SSH_TARGET}" "${ssh_cmd}" - fi -fi - -####################################### -# RUN DRUPAL TASKS (via UPDATE_SCRIPT): -####################################### -if drush_enabled && [ "${UPDATE_DISABLE}" == "0" -a -f "${BUILD_ROOT}/${UPDATE_SCRIPT}" ]; then - echo ">> Calling ${UPDATE_SCRIPT} to perform updates..." - ssh ${SSH_TARGET} "${DEPLOY_ROOT}/${UPDATE_SCRIPT} ${REMOTE_DRUSH}" -# echo ">> [D] Set maintenance mode OFF" -# ssh ${SSH_TARGET} ${REMOTE_DRUSH} state:set system.maintenance_mode FALSE -else - echo ">> [D] Skipping follow-up drush (cr, updb, cim, etc)." -# echo ">> Maintenence mode on. To disable: ${drush} state:set system.maintenance_mode FALSE" -fi - -echo "Deployment to ${DEPLOY_ENV} completed!" diff --git a/scripts/example.template b/scripts/example.template deleted file mode 100644 index 5645672..0000000 --- a/scripts/example.template +++ /dev/null @@ -1,12 +0,0 @@ - "${DB_NAME}", - 'username' => "${DB_USER}", - 'password' => "${DB_PASSWORD}", - 'host' => "127.0.0.1", - 'driver' => "mysql", - 'port' => 3306, - 'prefix' => "", -); -$settings['hash_salt'] = '${SALT}'; -$settings['trusted_host_patterns'] = [${TRUSTED_HOSTS}]; diff --git a/scripts/nuke.sh b/scripts/nuke.sh deleted file mode 100755 index 7fbc26b..0000000 --- a/scripts/nuke.sh +++ /dev/null @@ -1,36 +0,0 @@ -# Delete Drupal core and any contrib directories. -rm -rf web/core -rm -rf web/modules/contrib -rm -rf web/themes/contrib -rm -rf web/profiles/contrib -rm -rf drush/Commands/contrib - -# Delete Drupal root files. -rm -f web/.csslintrc -rm -f web/.editorconfig -rm -f web/.eslintignore -rm -f web/.eslintrc.json -rm -f web/.gitattributes -rm -f web/.gitignore -rm -f web/.ht.router.php -rm -f web/autoload.php -rm -f web/example.gitignore -rm -f web/index.php -rm -f web/INSTALL.txt -rm -f web/robots.txt -rm -f web/README.txt -rm -f web/update.php -rm -f web/web.config - -# Delete any Drupal scaffold files. -rm -f .editorconfig -rm -f .gitattributes - -# Delete any third party libraries. -# rm -rf web/libraries - -# Delete the vendor directory. -rm -rf vendor - -# Delete any build folders. -rm -rf build diff --git a/scripts/pull.sh b/scripts/pull.sh index 135b7d7..dbe9b90 100755 --- a/scripts/pull.sh +++ b/scripts/pull.sh @@ -1,23 +1,17 @@ #!/bin/bash -set -euo pipefail -# ~SCRIPT~ update.sh -# * Pass in a path to drush, or use a default: -# * Runs post-deploy commands to update Drupal - +set -e # Confirmed with echo `pwd` that as long as we use via composer it's always in # /var/www/html (aka the project root). proj_dir="$(cd $(dirname ${0})/../ && pwd)" # Parent of this script folder. [ "$proj_dir" != "/var/www/html" ] && { echo "Script running from unexpected path - are you running within ddev, as you should?"; exit 1; } -backup_file="$(date +%Y%m%dT%H%M%S)_pre_pull.sql.gz" +backup_file="$(date +%Y%m%dT%H%M%S)_pre_pull.sql" [ ! -d /var/www/html/backups ] && mkdir /var/www/html/backups || true -echo ">> Backing up current db to backups/${backup_file}..." -drush sql-dump --gzip > /var/www/html/backups/${backup_file} -echo ">> Dropping local db..." +echo "Backing up current db to backups/${backup_file}..." +drush sql-dump > /var/www/html/backups/${backup_file} +echo "Dropping local db..." drush -y sql-drop -echo ">> Pulling db from live into local..." -drush -y sql-sync --structure-tables-key=common @live @self -echo ">> Pulling files from live into local..." -drush -y rsync --exclude-paths=css:js:php @live:%files @self:%files -echo ">> Local cache reload..." -drush cr +echo "Pulling db from live into local..." +drush -y sql-sync @live @self +echo "Pulling files from live into local..." +drush -y rsync @live:%files @self:%files echo "Done" diff --git a/scripts/show-vars.sh b/scripts/show-vars.sh deleted file mode 100755 index adc52aa..0000000 --- a/scripts/show-vars.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -echo "[DEBUG] ENV SETTINGS (Required):" -echo "SSH_TARGET=$SSH_TARGET" -echo "DEPLOY_ENV=${DEPLOY_ENV}" -echo "CI_ENVIRONMENT_NAME=$CI_ENVIRONMENT_NAME" -echo "DEPLOY_ROOT=${DEPLOY_ROOT}" -echo "[DEBUG] ENV SETTINGS (Optional):" -echo "DRUPAL_ROOT=${DRUPAL_ROOT}" -echo "BACKUP_ROOT=${BACKUP_ROOT}" -echo "BUILD_ROOT=${BUILD_ROOT}" -echo "DRUSH_DISABLE=${DRUSH_DISABLE}" -echo "UPDATE_SCRIPT=${UPDATE_SCRIPT}" -echo "UPDATE_DISABLE=${UPDATE_DISABLE}" -echo "DEBUG=${DEBUG}" \ No newline at end of file diff --git a/scripts/sync_to_test.sh b/scripts/sync_to_test.sh deleted file mode 100755 index ffc9ab1..0000000 --- a/scripts/sync_to_test.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -set -euo pipefail - -source_site_root="/home/experienceolympic_live/site/web" -source_drush="/home/experienceolympic_live/site/vendor/bin/drush -r ${source_site_root}" -source_files="${source_site_root}/sites/default/files/" - -# Requires an .ssh/config entry for test-site. May be to localhost, and must not require a password for private key. -target_site=test-site -target_site_root="/home/experienceolympic_test/site/web" -target_drush="/home/experienceolympic_test/site/vendor/bin/drush -r ${target_site_root}" -target_files="${target_site_root}/sites/default/files/" -# Use ssh to target when target_site is set, otherwise use eval to just run in the local context -target_cmd="${target_site:+ssh ${target_site}}" -target_cmd="${target_cmd:-eval}" - -sync_date=$(date +%Y%m%d_%H%M%S%Z) - -# Test local drush/file paths/ssh connection/remote drush -[ -d ${source_files} ] || (echo "source_files folder does not exist"; exit 1) -${source_drush} status > /dev/null || (echo "Cannot execute local drush"; exit 1) -target_cmd "[ -d ${target_files} ]" || (echo "${target_cmd} failed, or ${target_files} folder does not exist at target. If using ssh, have you set up the key?"; exit 1) -target_cmd "${target_drush} status > /dev/null" || (echo "${target_cmd} ${target_drush} failed - does the site exist"; exit 1) - -echo ">> All checks succeeded!" -echo ">> Syncing this site to ${target_site:-${target_site_root}} (using file date: ${sync_date})..." - -# Dump destination DB (extra backup) -echo ">> Dumping destination database..." -target_cmd "${target_drush} sql-dump | gzip > ~/backups/${sync_date}-paranoia.sql.gz" -echo ">> Dumping source database..." -${source_drush} sql-dump | gzip > ~/backups/${sync_date}-sync.sql.gz - - -# Send copy -echo ">> Copying source db to target..." -'scp' ~/backups/${sync_date}-sync.sql.gz ${target_site}:backups/ - - -# Drop DB and reload from source -echo ">> Reloading target database..." -target_cmd "${target_drush} sql-drop -y" - -target_cmd "gunzip ~/backups/${sync_date}-sync.sql.gz" -target_cmd "${target_drush} sqlc < ~/backups/${sync_date}-sync.sql" - - -# Copy files -echo ">> Sending new files..." -rsync -rlptvz --exclude=php --exclude=js --exclude=css --exclude=styles --exclude=twig ${source_files} ${target_site:+${target_site}:}${target_files} - -echo ">> Sync to ${target_site:-${target_site_root}} complete - running cache rebuild..." - -# CR forever! -target_cmd "${target_drush} cr" - -echo ">> Target ${target_site:-${target_site_root}} is ready!" diff --git a/scripts/update-hook.sh b/scripts/update-hook.sh deleted file mode 100755 index a8a49fa..0000000 --- a/scripts/update-hook.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# ~SCRIPT~ update-hook.sh -# * Pass in a path to drush, or use a default: -# * Runs drush deploy command to update Drupal - -# https://stackoverflow.com/questions/59895/how-do-i-get-the-directory-where-a-bash-script-is-located-from-within-the-script -DIR="$( dirname -- "${BASH_SOURCE[0]}"; )"; # Get the directory name -SCRIPT_DIR="$( realpath -e -- "$DIR"; )"; # Resolve its full path if need be - -drush=${*-${SCRIPT_DIR}/../vendor/bin/drush} -echo "Using drush=${drush}" - -_oldpath=$PATH -export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin - -echo ">> [D] Running drush cache:rebuild" -${drush} cache:rebuild -echo ">> [D] Running drush deploy" -${drush} deploy -y -export PATH=$_oldpath -exit 0 diff --git a/scripts/update.sh b/scripts/update.sh deleted file mode 100755 index 5299c93..0000000 --- a/scripts/update.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -# ~SCRIPT~ update.sh -# * Pass in a path to drush, or use a default: -# * Runs post-deploy commands to update Drupal - -# https://stackoverflow.com/questions/59895/how-do-i-get-the-directory-where-a-bash-script-is-located-from-within-the-script -DIR="$( dirname -- "${BASH_SOURCE[0]}"; )"; # Get the directory name -SCRIPT_DIR="$( realpath -e -- "$DIR"; )"; # Resolve its full path if need be - -drush=${*-${SCRIPT_DIR}/../vendor/bin/drush} -echo "Using drush=${drush}" - -_oldpath=$PATH -export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin - -echo ">> [D] Running drush cr" -${drush} cr -echo ">> [D] Running drush updb -y" -${drush} updb -y -echo ">> [D] Running drush cim" -${drush} cim -y -echo ">> [D] Running drush cr (again)" -${drush} cr -export PATH=$_oldpath -exit 0