Coder Social home page Coder Social logo

nbc-bravo / drupal-scaffold Goto Github PK

View Code? Open in Web Editor NEW

This project forked from drupal-composer/drupal-scaffold

0.0 4.0 0.0 160 KB

:construction: Composer Plugin for updating the Drupal scaffold files when using drupal/core

Shell 3.68% PHP 96.32%

drupal-scaffold's Introduction

drupal-scaffold

Build Status

Composer plugin for automatically downloading Drupal scaffold files (like index.php, update.php, โ€ฆ) when using drupal/core via Composer.

It is recommended that the vendor directory be placed in its standard location at the project root, outside of the Drupal root; however, the location of the vendor directory and the name of the Drupal root may be placed in whatever location suits the project. Drupal-scaffold will generate the autoload.php file at the Drupal root to require the Composer-generated autoload file in the vendor directory.

Usage

Run composer require drupal-composer/drupal-scaffold:dev-master in your composer project before installing or updating drupal/core.

Once drupal-scaffold is required by your project, it will automatically update your scaffold files whenever composer update changes the version of drupal/core installed.

Configuration

You can configure the plugin with providing some settings in the extra section of your root composer.json.

{
  "extra": {
    "drupal-scaffold": {
      "source": "https://cgit.drupalcode.org/drupal/plain/{path}?h={version}",
      "excludes": [
        "google123.html",
        "robots.txt"
      ],
      "includes": [
        "sites/default/example.settings.my.php"
      ],
      "initial": {
        "sites/default/default.services.yml": "sites/default/services.yml",
        "sites/default/default.settings.php": "sites/default/settings.php"
      },
      "omit-defaults": false
    }
  }
}

The source option may be used to specify the URL to download the scaffold files from; the default source is drupal.org. The literal string {version} in the source option is replaced with the current version of Drupal core being updated prior to download.

With the drupal-scaffold option excludes, you can provide additional paths that should not be copied or overwritten. The plugin provides no excludes by default.

Default includes are provided by the plugin:

.csslintrc
.editorconfig
.eslintignore
.eslintrc (Drupal <= 8.2.x)
.eslintrc.json (Drupal >= 8.3.x)
.gitattributes
.ht.router.php (Drupal >= 8.5.x)
.htaccess
index.php
robots.txt
sites/default/default.settings.php
sites/default/default.services.yml
sites/development.services.yml
sites/example.settings.local.php
sites/example.sites.php
update.php
web.config

When setting omit-defaults to true, neither the default excludes nor the default includes will be provided; in this instance, only those files explicitly listed in the excludes and includes options will be considered. If omit-defaults is false (the default), then any items listed in excludes or includes will be in addition to the usual defaults.

The initial hash lists files that should be copied over only if they do not exist in the destination. The key specifies the path to the source file, and the value indicates the path to the destination file.

Limitation

When using Composer to install or update the Drupal development branch, the scaffold files are always taken from the HEAD of the branch (or, more specifically, from the most recent development .tar.gz archive). This might not be what you want when using an old development version (e.g. when the version is fixed via composer.lock). To avoid problems, always commit your scaffold files to the repository any time that composer.lock is committed. Note that the correct scaffold files are retrieved when using a tagged release of drupal/core (recommended).

Custom command

The plugin by default is only downloading the scaffold files when installing or updating drupal/core. If you want to call it manually, you have to add the command callback to the scripts-section of your root composer.json, like this:

{
  "scripts": {
    "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold"
  }
}

After that you can manually download the scaffold files according to your configuration by using composer drupal:scaffold.

It is assumed that the scaffold files will be committed to the repository, to ensure that the correct files are used on the CI server (see Limitation, above). After running composer install for the first time commit the scaffold files to your repository.

drupal-scaffold's People

Contributors

greg-1-anderson avatar derhasi avatar webflo avatar claudiu-cristea avatar bartfeenstra avatar florenttorregrosa avatar kmbremner avatar pingers avatar sherakama avatar hctom avatar alexpott avatar

Watchers

Matt Witherow avatar Andrew Berry avatar James Cloos avatar James Napolitano avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.