aboutsummaryrefslogtreecommitdiff
path: root/share/templater/drupal-composer/setup
blob: 975829883a730da8f4d6adceacdec5006aaba1ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash
#
# Basic files templater module.
#

# Parameters
SHARE="$1"

# Include basic functions
source $SHARE/templater/functions || exit 1

# drupal-composer implementation
function templater_drupal_composer {
  if [ ! -e 'web/sites/default/settings.local.php' ]; then
    templater_echo "Setting up Drupal with composer..."

    # Check for existing composer.json
    if [ -e "composer.json" ]; then
      templater_echo "Cannot proceeed, composer.json already present"
      return 1
    fi

    # Check for composer
    if ! which composer &> /dev/null; then
      templater_echo "error: please install composer first"
      return 1
    fi

    # Setup project using composer
    # See https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies
    #     https://www.drupal.org/docs/develop/using-composer/using-composer-with-drupal
    #composer create-project drupal/recommended-project .
    composer create-project drupal-composer/drupal-project:8.x-dev . --no-interaction

    if [ ! -e "web/sites/default/services.dev.yml" ]; then
      cp $SHARE/drupal-composer/files/services.dev.yml web/sites/default/services.dev.yml
    fi

    if [ ! -e "web/sites/default/settings.custom.php" ]; then
      cp $SHARE/drupal-composer/files/settings.custom.php web/sites/default/settings.custom.php
    fi

    if [ ! -e "web/sites/default/settings.local.php" ]; then
      cp $SHARE/drupal-composer/files/settings.local.php web/sites/default/settings.local.php

      if [ -d ".git" ]; then
        git ignore web/sites/default/settings.local.php
      else
        echo "web/sites/default/settings.local.php" >> .gitignore
      fi
    fi

    # Ensure both settings.custom.php and settings.local.php are loaded
    cat $SHARE/drupal-composer/files/settings.loader.snippet >> web/sites/default/settings.php

    templater_install_makefile $SHARE/drupal-composer/files/Makefile.drupal-composer

    if [ ! -e "README.drupal-composer.md" ]; then
      cp $SHARE/drupal-composer/files/README.drupal-composer.md .
    fi

    if [ -d "puppet" ] && [ ! -e "puppet/Puppetfile" ]; then
      cp $SHARE/drupal-composer/files/puppet/Puppetfile puppet/
    else
      cp $SHARE/drupal-composer/files/puppet/Puppetfile puppet/Puppetfile.drupal-composer
    fi

    # Use pushtodeploy instead
    #if [ ! -e "bin/post-receive" ]; then
    #  mkdir -p bin && cp $SHARE/drupal-composer/files/bin/post-receive bin/
    #fi
    templater_echo "Please use pushtodeploy module for automated deployments"

    mkdir -p web/sites/default/config/sync web/libraries vendor
    touch web/sites/default/{files,config/sync}/.empty
    git add -f web/sites/default/{files,config/sync}/.empty
  else
    templater_echo "Drupal already set"
  fi
}

# Dispatch
templater_drupal_composer