diff --git a/features/drupal.feature b/features/drupal.feature deleted file mode 100644 index 76edd08..0000000 --- a/features/drupal.feature +++ /dev/null @@ -1,118 +0,0 @@ -Feature: Bootstrap Drupal development - In order to develop and test Drupal extensions - As a developer - I need to be able create basic extensions from templates - - Scenario: Bootstrap module development - Given I bootstrap drumkit - When I run "make drupal-module NAME=my_module" - #When I run "make drupal-module NAME=my_module CONFIRM=y" - #Then I should get: - # """ - # Enter module name: - # """ - #When I type "My Module" - #Then I should get: - # """ - # This will create a new module ('My Module'/my_module) in the current directory. - # Proceed? (y/n) - # """ - #When I type "y" - Then I should get: - """ - Bootstrapping Drupal module development. - Creating skeleton for 'my_module' module. - """ - And the following files should exist: - """ - my_module.info.yml - composer.json - """ - And the file "my_module.info.yml" should contain: - """ - name: my_module - """ - And the file "composer.json" should contain: - """ - "name": "drupal/my_module", - """ - - Scenario: Bootstrap theme development - Given I bootstrap drumkit - And I run "make drupal-theme NAME=my_theme" - #When I run "make drupal-theme NAME=my_theme CONFIRM=y" - #Then I should get: - # """ - # Enter theme name: - # """ - #When I type "My Theme" - #Then I should get: - # """ - # This will create a new theme ('My Theme'/my_theme) in the current directory. - # Proceed? (y/n) - # """ - #When I type "y" - Then I should get: - """ - Bootstrapping Drupal theme development. - Creating skeleton for 'my_theme' theme. - """ - And the following files should exist: - """ - my_theme.info.yml - composer.json - """ - And the file "my_theme.info.yml" should contain: - """ - name: my_theme - """ - And the file "composer.json" should contain: - """ - "name": "drupal/my_theme", - """ - - Scenario: Bootstrap profile development - Given I bootstrap drumkit - And I run "make drupal-profile NAME=my_profile" - #And I run "make drupal-profile NAME=my_profile CONFIRM=y" - #Then I should get: - # """ - # Enter profile name: - # """ - #When I type "My Profile" - #Then I should get: - # """ - # This will create a new profile ('My Profile'/my_profile) in the current directory. - # Proceed? (y/n) - # """ - #When I type "y" - Then I should get: - """ - Bootstrapping Drupal profile development. - Creating skeleton for 'my_profile' profile. - """ - And the following files should exist: - """ - my_profile.info.yml - composer.json - """ - And the file "my_profile.info.yml" should contain: - """ - name: my_profile - """ - And the file "composer.json" should contain: - """ - "name": "drupal/my_profile", - """ - - @wip - Scenario: Bootstrap site development - Given I bootstrap drumkit - And I run "make drupal-site" - Then I should get: - """ - """ - And the following files should exist: - """ - """ - diff --git a/features/projects/drupal-project.feature b/features/projects/drupal-project.feature index eb7880c..4269b24 100644 --- a/features/projects/drupal-project.feature +++ b/features/projects/drupal-project.feature @@ -11,10 +11,8 @@ Feature: Initialize Drupal projects with Lando. When I run "make -n init-project-drupal-deps" Then I should get: """ - Ensuring PHP dependencies are installed. Installing Behat. Ensuring Docker is installed. - in docker group. Ensuring Lando is installed. """ When I run "make -n init-project-drupal" diff --git a/features/selfdoc.feature b/features/selfdoc.feature index e3bbf20..8170bbc 100644 --- a/features/selfdoc.feature +++ b/features/selfdoc.feature @@ -21,7 +21,6 @@ Feature: Selfdoc for Drumkit development """ ansible help - drupal projects """ And I run "make help-projects" diff --git a/files/drupal/module/composer.json b/files/drupal/module/composer.json deleted file mode 100644 index cbfdee0..0000000 --- a/files/drupal/module/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "drupal/example", - "description": "example module.", - "type": "drupal-module", - "license": "GPL-2.0+" -} diff --git a/files/drupal/module/example.info.yml b/files/drupal/module/example.info.yml deleted file mode 100644 index 259923b..0000000 --- a/files/drupal/module/example.info.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: example -description: example module. -package: Custom - -type: module -core: 8.x diff --git a/files/drupal/profile/composer.json b/files/drupal/profile/composer.json deleted file mode 100644 index 65f8d75..0000000 --- a/files/drupal/profile/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "drupal/example", - "description": "example theme.", - "type": "drupal-profile", - "license": "GPL-2.0+" -} diff --git a/files/drupal/profile/example.info.yml b/files/drupal/profile/example.info.yml deleted file mode 100644 index dd810b6..0000000 --- a/files/drupal/profile/example.info.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: example -description: example profile. -package: Custom - -type: profile -core: 8.x diff --git a/files/drupal/theme/composer.json b/files/drupal/theme/composer.json deleted file mode 100644 index 911ea77..0000000 --- a/files/drupal/theme/composer.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "drupal/example", - "description": "example theme.", - "type": "drupal-theme", - "license": "GPL-2.0+" -} diff --git a/files/drupal/theme/example.info.yml b/files/drupal/theme/example.info.yml deleted file mode 100644 index 69ea9af..0000000 --- a/files/drupal/theme/example.info.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: example -description: example theme. -package: Custom - -type: theme -core: 8.x diff --git a/mk/tasks/deps.mk b/mk/tasks/deps.mk index dd95cc8..4243989 100644 --- a/mk/tasks/deps.mk +++ b/mk/tasks/deps.mk @@ -1,28 +1,39 @@ +local_OS ?= $(shell uname) ifeq ($(shell whoami),root) SUDO= else SUDO=sudo endif + + deps: apt-update mysql-server mysql-server: apt-update +ifeq ($(local_OS), Linux) @echo Installing MySQL server @echo 'mysql-server mysql-server/root_password password' | $(SUDO) debconf-set-selections @echo 'mysql-server mysql-server/root_password_again password' | $(SUDO) debconf-set-selections @$(SUDO) DEBIAN_FRONTEND=noninteractive apt-get -y -qq install mysql-server +endif apt-update: +ifeq ($(local_OS), Linux) @echo Updating apt @$(SUDO) DEBIAN_FRONTEND=noninteractive apt-get update -qq +endif deps-python: apt-update +ifeq ($(local_OS), Linux) @echo Ensuring python dependencies are installed. @$(SUDO) DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3-minimal python3-pip python3-yaml python3-jinja2 @$(SUDO) update-alternatives --install /usr/bin/python python /usr/bin/python3 1 +endif deps-php: apt-update +ifeq ($(local_OS), Linux) @echo Ensuring PHP dependencies are installed. @$(SUDO) DEBIAN_FRONTEND=noninteractive apt-get install -y -qq php-cli php-mbstring php-curl php-xml php-gd unzip tree +endif # vi:syntax=makefile diff --git a/mk/tasks/drupal.mk b/mk/tasks/drupal.mk deleted file mode 100644 index 53604ec..0000000 --- a/mk/tasks/drupal.mk +++ /dev/null @@ -1,33 +0,0 @@ -DRUPAL_DIR ?= $(LOCAL_DIR)/drupal -PROJECT_NAME ?= example -PROJECT_TYPE ?= module -PROFILE ?= $(shell if [[ '$(PROJECT_TYPE)' == 'profile' ]]; then echo '$(PROJECT_NAME)'; else echo 'minimal'; fi) - -.PHONY: help-drupal help-drupal-all debug-drupal-help debug-drupal clean-drupal-help clean-drupal drupal-help drupal - -include $(MK_DIR)/mk/tasks/drupal/*.mk - -help-drupal: drupal-help drupal-reinstall-help drupal-rebuild-help drupal-tests-help clean-drupal-help drupal-user-login-help drush-alias-help ##@drupal Show special help targets for drupal - @$(ECHO) "$(BOLD)make help-drupal-all$(RESET)" - @echo " Display help for additional Drupal targets." - -help-drupal-all: help-drupal debug-drupal-help drupal-start-server-help drupal-kill-server-help - -debug-drupal-help: - @$(ECHO) "$(BOLD)make debug-drupal$(RESET)" - @echo " Print some variables for debugging." -debug-drupal: - @echo "PROJECT_ROOT: $(PROJECT_ROOT)" - @echo "PLATFORM_ROOT: $(PLATFORM_ROOT)" - -clean-drupal-help: - @$(ECHO) "$(BOLD)make clean-drupal$(RESET)" - @echo " Delete the Drupal codebase and database, and stop the PHP server." -clean-drupal: clean-drupal-platform - -drupal-help: - @$(ECHO) "$(BOLD)make drupal$(RESET)" - @echo " Build a Drupal codebase, install a site and start a web server." -drupal: drupal-kill-server drupal-build-platform drupal-install drupal-start-server drush-alias drupal-user-login - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-login.mk b/mk/tasks/drupal/drupal-login.mk deleted file mode 100644 index 2d1c414..0000000 --- a/mk/tasks/drupal/drupal-login.mk +++ /dev/null @@ -1,10 +0,0 @@ -.PHONY: drupal-user-login-help drupal-user-login - -drupal-user-login-help: - @$(ECHO) "$(BOLD)make drupal-user-login$(RESET)" - @echo " Open a browser and login to the dev site." -drupal-user-login: drupal-install drupal-start-server - @echo "A browser window should open on your new site. If not, use the following URL:" - @drush @$(SITE) uli admin admin - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-module.mk b/mk/tasks/drupal/drupal-module.mk deleted file mode 100644 index 9632d2f..0000000 --- a/mk/tasks/drupal/drupal-module.mk +++ /dev/null @@ -1,11 +0,0 @@ -NAME ?= example - -drupal-module: - @echo Bootstrapping Drupal module development. - @echo Creating skeleton for \'$(NAME)\' module. - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/module/example.info.yml > ./$(NAME).info.yml - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/module/composer.json > ./composer.json - -clean-drupal-module: - @rm *.info.yml - @rm composer.json diff --git a/mk/tasks/drupal/drupal-platform.mk b/mk/tasks/drupal/drupal-platform.mk deleted file mode 100644 index 72fae37..0000000 --- a/mk/tasks/drupal/drupal-platform.mk +++ /dev/null @@ -1,33 +0,0 @@ -drush_make ?= $(drush) -y make --working-copy -DRUSH_MAKEFILE ?= $(PROJECT_ROOT)/dev.build.yml -PLATFORM_ROOT ?= $(DRUPAL_DIR)/drupal-$(SITE) - -.PHONY: drupal-rebuild drupal-rebuild-help clean-drupal-platform drupal-build-platform - -drupal-rebuild-help: - @$(ECHO) "$(BOLD)make drupal-rebuild$(RESET)" - @echo " Destroy the current Drupal site and rebuild it from scratch." -drupal-rebuild: clean-drupal drupal - -clean-drupal-platform: clean-drupal-site - @echo "Deleting '$(SITE)' site platform." - @if [ -d $(PLATFORM_ROOT) ]; then chmod -f -R 700 $(PLATFORM_ROOT); fi - @rm -rf $(PLATFORM_ROOT) - -drupal-build-platform: drush $(PLATFORM_ROOT) -$(PLATFORM_ROOT): $(DRUSH_MAKEFILE) $(DRUPAL_DIR) - @echo "Building platform using $(DRUSH_MAKEFILE)." - @mkdir -p $(PLATFORM_ROOT)/$(PROJECT_TYPE)s - @if [ ! -L $(PLATFORM_ROOT)/$(PROJECT_TYPE)s/$(PROJECT_NAME) ]; then ln -s $(PROJECT_ROOT) $(PLATFORM_ROOT)/$(PROJECT_TYPE)s/$(PROJECT_NAME); fi - @cd $(PLATFORM_ROOT) && $(drush_make) $(DRUSH_MAKEFILE) - @touch $(PLATFORM_ROOT) -$(DRUSH_MAKEFILE): - @echo "Initializing build makefile." - @cp $(FILES_DIR)/dev.build.yml $(DRUSH_MAKEFILE) - @touch $(DRUSH_MAKEFILE) -$(DRUPAL_DIR): $(LOCAL_DIR) - @echo Creating local Drupal directory. - @mkdir -p $(DRUPAL_DIR) - @touch $(DRUPAL_DIR) - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-profile.mk b/mk/tasks/drupal/drupal-profile.mk deleted file mode 100644 index 0ca2bd2..0000000 --- a/mk/tasks/drupal/drupal-profile.mk +++ /dev/null @@ -1,11 +0,0 @@ -NAME ?= example - -drupal-profile: - @echo Bootstrapping Drupal profile development. - @echo Creating skeleton for \'$(NAME)\' profile. - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/profile/example.info.yml > ./$(NAME).info.yml - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/profile/composer.json > ./composer.json - -clean-drupal-profile: - @rm *.info.yml - @rm composer.json diff --git a/mk/tasks/drupal/drupal-server.mk b/mk/tasks/drupal/drupal-server.mk deleted file mode 100644 index b3e5f3c..0000000 --- a/mk/tasks/drupal/drupal-server.mk +++ /dev/null @@ -1,23 +0,0 @@ -PHP_SERVER_PORT ?= 8888 - -.PHONY: drupal-start-server-help drupal-start-server drupal-kill-server-help drupal-kill-server - -drupal-start-server-help: - @$(ECHO) "$(BOLD)make drupal-start-server$(RESET)" - @echo " Start an embedded PHP server." -drupal-start-server: ## Start an embedded PHP server - @echo "Starting PHP server." - @cd $(PLATFORM_ROOT) && php -S 0.0.0.0:$(PHP_SERVER_PORT) &> runserver.log & - @echo "Giving PHP server a chance to start." - @sleep 3 - -drupal-kill-server-help: - @$(ECHO) "$(BOLD)make drupal-kill-server$(RESET)" - @echo " Stop the PHP server." -drupal-kill-server: - @echo "Stopping any running PHP servers." - @ps aux|grep "[p]hp -S" > /dev/null; if [ "$?" == 0 ]; then pkill -f "php -S"; fi - @echo "Giving PHP servers a chance to stop." - @sleep 3 - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-site.mk b/mk/tasks/drupal/drupal-site.mk deleted file mode 100644 index 010d6a0..0000000 --- a/mk/tasks/drupal/drupal-site.mk +++ /dev/null @@ -1,40 +0,0 @@ -SQLITE_DIR ?= $(DRUPAL_DIR)/sqlite -SITE ?= default -SITE_DIR ?= $(PLATFORM_ROOT)/sites/$(SITE) -site_exists ?= $(shell if [[ -f $(SITE_DIR)/settings.php ]]; then echo 1; fi) -SITE_URI ?= http://localhost:$(PHP_SERVER_PORT) - -.PHONY: drupal-reinstall-help drupal-reinstall clean-drupal-site drupal-install drupal-create-sqlite-db - -drupal-reinstall-help: - @$(ECHO) "$(BOLD)make drupal-reinstall$(RESET)" - @echo " Re-install the current Drupal site." - @echo " - Kills server, deletes database and settings.php" - @echo " - Complete reinstall including a new database" - -drupal-reinstall: clean-drupal-site drupal-install drupal-start-server drupal-user-login - -clean-drupal-site: drupal-kill-server - @echo "Deleting '$(SITE)' site database." - @rm -rf $(SQLITE_DIR)/$(SITE) - @echo "Deleting '$(SITE)' site settings.php." - @if [ -d $(SITE_DIR) ]; then chmod 755 $(SITE_DIR); fi - @if [ -f $(SITE_DIR)/settings.php ]; then chmod 644 $(SITE_DIR)/settings.php; fi - @rm -f $(SITE_DIR)/settings.php - -drupal-install: drush $(SITE_DIR)/settings.php -$(SITE_DIR)/settings.php: drupal-create-sqlite-db - @cd $(PLATFORM_ROOT) && $(drush) -y site-install $(PROFILE) --db-url=sqlite://$(SQLITE_DIR)/$(SITE)/db.sqlite --account-pass=pwd --sites-subdir=$(SITE) install_configure_form.update_status_module='array(FALSE,FALSE)' - @touch $(SITE_DIR)/settings.php - -drupal-create-sqlite-db: $(SQLITE_DIR)/$(SITE) -$(SQLITE_DIR)/$(SITE): $(SQLITE_DIR) - @echo Creating SQLite directory for '$(SITE)'. - @mkdir -p $(SQLITE_DIR)/$(SITE) - @touch $(SQLITE_DIR)/$(SITE) -$(SQLITE_DIR): $(DRUPAL_DIR) - @echo Creating local SQLite directory. - @mkdir -p $(SQLITE_DIR) - @touch $(SQLITE_DIR) - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-tests.mk b/mk/tasks/drupal/drupal-tests.mk deleted file mode 100644 index 0d5e1ca..0000000 --- a/mk/tasks/drupal/drupal-tests.mk +++ /dev/null @@ -1,17 +0,0 @@ -.PHONY: drupal-behat-config drupal-tests drupal-tests-wip - -drupal-behat-config: behat drush-bde-env drush-alias - @echo Generating project-specific Behat config. - @cd $(PLATFORM_ROOT) && $(drush) @$(SITE) beg --subcontexts=profiles/$(PROFILE)/modules --site-root=$(PLATFORM_ROOT) --skip-path-check --base-url=$(SITE_URI) $(PROJECT_ROOT)/behat_params.sh - -drupal-tests-help: - @$(ECHO) "$(BOLD)make drupal-tests$(RESET)" - @echo " Run Behat tests against dev Drupal site. (Optional) Specify a test file using the CURRENT_TEST option." - @$(ECHO) "$(BOLD)make drupal-tests-wip$(RESET)" - @echo " Run work-in-progress Behat tests against dev Drupal site." -drupal-tests: drupal-behat-config - @source behat_params.sh && $(behat) $(CURRENT_TEST) -drupal-tests-wip: drupal-behat-config - @source behat_params.sh && $(behat) $(CURRENT_TEST) --tags=wip - -# vi:syntax=makefile diff --git a/mk/tasks/drupal/drupal-theme.mk b/mk/tasks/drupal/drupal-theme.mk deleted file mode 100644 index 95eb9aa..0000000 --- a/mk/tasks/drupal/drupal-theme.mk +++ /dev/null @@ -1,11 +0,0 @@ -NAME ?= example - -drupal-theme: - @echo Bootstrapping Drupal theme development. - @echo Creating skeleton for \'$(NAME)\' theme. - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/theme/example.info.yml > ./$(NAME).info.yml - @sed "s/example/$(NAME)/g" < $(FILES_DIR)/drupal/theme/composer.json > ./composer.json - -clean-drupal-theme: - @rm *.info.yml - @rm composer.json diff --git a/mk/tasks/drupal/drush-alias.mk b/mk/tasks/drupal/drush-alias.mk deleted file mode 100644 index 3a65bf8..0000000 --- a/mk/tasks/drupal/drush-alias.mk +++ /dev/null @@ -1,53 +0,0 @@ -DRUSH_DIR ?= $(LOCAL_DIR)/drush -DRUSH_ALIAS_PATH ?= $(DRUSH_DIR)/$(SITE).alias.drushrc.php -DRUSHRC_HOME ?= $(shell echo ~/.drushrc.php) -DRUSHRC_DRUMKIT ?= $(DRUSH_DIR)/.drumkit.drushrc.php - -.PHONY: drush-alias-help debug-drush-alias drush-alias - -drush-alias-help: ##@help [TODO: Explain how this works.] - @$(ECHO) "$(BOLD)make drush-alias$(RESET)" - @echo " Generate a Drush alias for the dev site." - -debug-drush-alias: - @echo "DRUSH_DIR: $(DRUSH_DIR)" - @echo "DRUSH_ALIAS_PATH: $(DRUSH_ALIAS_PATH)" - @echo "DRUSHRC_DRUMKIT: $(DRUSHRC_DRUMKIT)" - @echo "DRUSHRC_HOME: $(DRUSHRC_HOME)" - -drush-alias: $(DRUSH_ALIAS_PATH) - -$(DRUSH_ALIAS_PATH): $(DRUSHRC_DRUMKIT) - @if [ ! -s $(DRUSH_ALIAS_PATH) ]; then \ - echo "Creating Drush alias @$(SITE)."; \ - echo " $(DRUSH_ALIAS_PATH); \ - echo " \$$aliases['$(SITE)'] = array('root' => '$(PLATFORM_ROOT)','uri' => '$(SITE_URI)');" >> $(DRUSH_ALIAS_PATH); \ - fi - @$(drush) site-alias | grep "@$(SITE)" 2>&1 > /dev/null; \ - if [ "$$?" == 0 ]; then \ - echo "The @$(SITE) alias is ready for use."; \ - fi - -$(DRUSHRC_DRUMKIT): $(DRUSHRC_HOME) $(DRUSH_DIR) - @if [ ! -s $(DRUSHRC_DRUMKIT) ]; then \ - echo "Initializing Drumkit include drushrc file."; \ - echo " $(DRUSHRC_DRUMKIT); \ - fi - @grep "$(DRUSH_DIR)" $(DRUSHRC_DRUMKIT) 2>&1 > /dev/null; \ - if [ "$$?" != 0 ]; then \ - echo "Registering alias search path in Drumkit drushrc file."; \ - echo " \$$options['alias-path'][] = '$(DRUSH_DIR)';" >> $(DRUSHRC_DRUMKIT); \ - fi - @grep "$(DRUSHRC_DRUMKIT)" $(DRUSHRC_HOME) 2>&1 > /dev/null; \ - if [ "$$?" != 0 ]; then \ - echo "Registering Drumkit include in main drushrc file."; \ - echo "include_once('$(DRUSHRC_DRUMKIT)');" >> $(DRUSHRC_HOME); \ - fi - -$(DRUSHRC_HOME): - @if [ ! -s $(DRUSHRC_DRUMKIT) ]; then \ - echo "Initializing main drushrc file."; \ - echo " $(DRUSHRC_HOME); \ - fi - -# vi:syntax=makefile