Git Product home page Git Product logo

drupal-drux's Introduction

drupal-drux

Dependency manager for Drush (Drupal bash/commandline)

The goal of this script is to sync enabled modules on different deployments (local, dev, staging, production).

Installation

cd ~/.drush
git clone [email protected]:donquixote/drupal-drux.git
drush cc drush

Idea

The idea is that you create one or more "seed" modules which list the other enabled modules as dependencies in their info files. There could be one seed module to share between all deployments. But there can be specific seed modules that are only for development, or only for your local installation. The seed modules can be created with features, but you could also just create a basic custom module where you edit the *.info file manually.

An enabled module is considered "obsolete" with respect to one or more seed modules, if it could be safely disabled without disabling any of the seed modules. The way to deal with obsolete modules is to either disable them, or to add them as a dependency.

Commands

drush drux-find-obsolete module1 module2 module3

Finds all enabled modules that are not direct or indirect dependencies of the specified seed modules. In other words: It finds all modules that could be safely disabled without disabling any of the specified seed modules.

drush drux-generate module1 module2 module3

Generate of dependencies[] = .. lines for "obsolete" modules as above, to copy + paste into a module info file.

drush drux-list-dependencies

Finds disabled or missing modules that are required by any of the enabled modules on the site. E.g. if you pull from git, and one of your enabled modules suddenly gets new dependencies, this command will help you to identify the modules that need to be enabled.

drush drux-enable-dependencies

Enables and potentially downloads modules that are required by enabled modules.

drupal-drux's People

Contributors

donquixote avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

drupal-drux's Issues

Is Drux a drush extension or a module or both?

Hi!
I did an install per the github instructions in the README.md.

In a Drupal webroot ran the following and got errors.

$ drush drux-list-dependencies
Command drux-list-dependencies needs the following module(s) enabled to run: drux.                                                                                [error]
The drush command 'drux-list-dependencies' could not be executed.                                                                                                 [error]

So it looks like the module must be installed if the error messages are correct. However on the Drupal.org project page for Drux it states:

While it is fine to use this from github, as a drush extension, the drupal.org project allows to include it in a site / project as a regular module. Do whatever works best for your work flow!

So to my title question: Is Drux a drush extension or a module or both? And if it is an drush extension why does it have a module dependency?

Thanks for your time and help!
Frederick

Can this be added to Packagist

We have been managing several D7 sites for some time and have never found a great solution for what this solves. We are migrating our D7 sites to build using Composer and it would be really helpful to have this in Packagist.

Would it be possible to get it added?
Thanks

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.