Skip to content

Instantly share code, notes, and snippets.

@DonRichards
Last active February 25, 2022 20:58
Show Gist options
  • Save DonRichards/777d710286f0e953cd908227861cd828 to your computer and use it in GitHub Desktop.
Save DonRichards/777d710286f0e953cd908227861cd828 to your computer and use it in GitHub Desktop.
isle-dc Developer Environment extra script (Islandora 2.0/8)
#!/usr/bin/env bash
: '
Change DIR_TO_ISLE to the directory where is is located.
What does this do
1. Exports Configs
2. Installs Drupal Console w/ alias
3. Add adminimal theme w/ adminimal's admin toolbar and sets it a the admin theme default
4. Installs Config delete module
5. Triggers Solr's core to update and optimize
6. Installs and enables devel, Kint, and Webprofiler for debugging.
7. Fixes PDFs
8. Adds highlightjs & D3.js libraries to the composer.json file (insane hack but works for now)
'
DIR_TO_WATCH=$(pwd)/isle-dc
cd ${DIR_TO_WATCH} || exit
make fix-masonry
docker-compose exec -T drupal with-contenv bash -lc "composer install"
docker-compose exec -T drupal with-contenv bash -lc "drush updb --yes --cache-clear=1"
docker-compose exec -T drupal with-contenv bash -lc "drush config:export -y"
docker-compose exec -T drupal with-contenv bash -lc "composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader -W"
docker-compose exec -T drupal with-contenv bash -lc "composer global require drupal/coder --optimize-autoloader"
docker-compose exec -T drupal with-contenv bash -lc "echo 'export PATH=\"\$PATH:\$HOME/.composer/vendor/bin\"' >> ~/.bashrc"
docker-compose exec -T drupal with-contenv bash -lc "composer require 'drupal/adminimal_theme:^1.6' --prefer-dist --optimize-autoloader -W"
docker-compose exec -T drupal with-contenv bash -lc "drush theme:enable adminimal_theme"
docker-compose exec -T drupal with-contenv bash -lc "drush config-set system.theme admin adminimal_theme -y"
docker-compose exec -T drupal with-contenv bash -lc "composer require 'drupal/adminimal_admin_toolbar:^1.11'"
docker-compose exec -T drupal with-contenv bash -lc "drush pm:enable -y adminimal_admin_toolbar"
docker-compose exec -T drupal with-contenv bash -lc "composer require 'drupal/config_delete:^1.17'"
docker-compose exec -T drupal with-contenv bash -lc "drush pm:enable -y config_delete"
docker-compose exec -T drupal with-contenv bash -lc "drush en devel -y"
docker-compose exec -T drupal with-contenv bash -lc "drush cron && drush cr"
curl $(echo "http://$(docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" $(docker ps --format "{{.Names}}" | grep solr)):8983/solr/admin/cores?action=RELOAD&core=ISLANDORA")
curl $(echo "http://$(docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" $(docker ps --format "{{.Names}}" | grep solr)):8983/solr/ISLANDORA/update?optimize=true")
docker-compose exec -T drupal with-contenv bash -lc "composer require drupal/devel --with-all-dependencies"
docker-compose exec -T drupal with-contenv bash -lc "composer require 'drupal/devel_kint_extras' --with-all-dependencies"
docker-compose exec -T drupal with-contenv bash -lc "composer require components/highlightjs --with-all-dependencies"
docker-compose exec -T drupal with-contenv bash -lc "mkdir -p web/libraries/d3 && chown -R nginx: web/libraries/d3 && curl https://d3js.org/d3.v3.min.js -o web/libraries/d3/d3.v3.min.js"
docker-compose exec -T drupal with-contenv bash -lc "drush pm:enable devel devel_kint_extras -y"
docker-compose exec -T drupal with-contenv bash -lc "cp web/sites/default/settings.php web/sites/default/settings.local.php"
docker-compose exec -T drupal with-contenv bash -lc "echo '' > web/sites/default/settings.local.php"
docker-compose exec -T drupal with-contenv bash -lc "echo 'include_once(DRUPAL_ROOT . '/var/www/drupal/vendor/kint-php/kint/src/Kint.php');
if (class_exists('Kint')) {
Kint::\$max_depth = 5;
}
\$config['system.logging']['error_level'] = 'all'; ' > web/sites/default/settings.local.php "
docker-compose exec -T drupal with-contenv bash -lc "chown nginx: web/sites/default/settings.local.php"
docker-compose exec drupal bash -lc "cd /var/www/drupal/web/libraries ; [ ! -d '/var/www/drupal/web/libraries/pdf.js' ] && curl -b cookie.txt -L https://github.com/mozilla/pdf.js/releases/download/v$${PDFJS_VERSION}/pdfjs-$${PDFJS_VERSION}-dist.zip -o pdfjs.zip || echo Ready"
docker-compose exec drupal bash -lc "cd /var/www/drupal/web/libraries ; [ -f '/var/www/drupal/web/libraries/pdfjs.zip' ] && unzip pdfjs.zip -d /var/www/drupal/web/libraries/pdf.js || echo Ready"
docker-compose exec drupal bash -lc "[ -f '/var/www/drupal/web/libraries/pdfjs.zip' ] && rm -rf /var/www/drupal/web/libraries/pdfjs.zip || echo Zip file removed"
docker-compose exec drupal bash -lc "[ -d '/var/www/drupal/web/libraries/pdf.js' ] && chmod -R 755 /var/www/drupal/web/libraries/pdf.js ; chown -R 1000:nginx /var/www/drupal/web/libraries/pdf.js"
# Insane hack to get around the fact that the composer.json file is not being updated with the libraries.
docker-compose exec drupal bash -lc "rm -rf composer_part1.json composer_part2.json composer_part3.json"
docker-compose exec drupal bash -lc "cat composer.json | sed '/https:\/\/packages.drupal.org\/8/,\$d' > composer_part1.json"
touch composer_temp.txt
cat >> composer_temp.txt <<TXT
"url": "https://packages.drupal.org/8"
},
{
"type": "package",
"package": {
"name": "d3/d3",
"version": "v3.5.17",
"type": "drupal-library",
"dist": {
"url": "https://github.com/d3/d3/archive/v3.5.17.zip",
"type": "zip"
}
}
},
{
"type": "package",
"package": {
"name": "components/highlightjs",
"version": "9.7.0",
"type": "drupal-library",
"dist": {
"url": "https://github.com/components/highlightjs/archive/9.7.0.zip",
"type": "zip"
}
}
TXT
docker cp composer_temp.txt $(docker ps --format "{{.Names}}" | grep drupal):/var/www/drupal/composer_part2.json
rm -f composer_temp.txt
docker-compose exec drupal bash -lc "cat composer.json | sed '/https:\/\/packages.drupal.org\/8/,\$!d;' | awk 'NR!=1' > composer_part3.json"
docker-compose exec drupal bash -lc "cat composer_part1.json > composer2.json && cat composer_part2.json >> composer2.json && cat composer_part3.json >> composer2.json"
docker-compose exec drupal bash -lc "cp composer.json composer.bak && cat composer2.json > composer.json && composer install --no-interaction --no-dev --prefer-dist --no-suggest --optimize-autoloader"
docker-compose exec drupal bash -lc "apk add --upgrade mlocate && updatedb && drush pmu update"
docker-compose exec drupal bash -lc "apk add nano"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment