factorial-io / phabalicious

Supports your deployments and every-day devops-tasks
http://docs.phab.io
MIT License
18 stars 3 forks source link

WIP: Feature/support subfolders and custom projectfolder #32

Closed stmh closed 5 years ago

stmh commented 5 years ago

This is an alternative approach for better scaffoldig support similar to what entityscaffolder can do.

The major differences are

This works quite well, but need some refinements.

Here's an example for bi-d7:

inheritsFrom:
  - https://config.factorial.io/scaffold/base.yml

questions:
  biShortName:
    question: "Please provide the BI short name of the new project (3-5 letters)"
    validation: "/^[A-Za-z0-9]{3,5}$/"
    error: "The BI-short name may consist of 3 to 5 letters (A-Z) or digits (0-9)"
    transform: lowercase

variables:
  projectFolder: "%biShortName%-%name%"
  theme_machine_name: "%shortName%_frontend"

assets:
  - .fabfile.yaml
  - docker-compose.yml
  - docker-compose-mbb.yml
  - modules_disabled.txt
  - composer.json

utilsModuleAssets:
  - utilsModule/%shortName%_utils.info
  - utilsModule/%shortName%_utils.module
  - utilsModule/%shortName%_utils.install

deployModuleAssets:
  - deployModule/%shortName%_deploy.info
  - deployModule/%shortName%_deploy.module
  - deployModule/%shortName%_deploy.install

sshKeys:
  - ssh-keys/docker-root-key
  - ssh-keys/docker-root-key.pub
  - ssh-keys/known_hosts

entityScaffolder:
  - entityScaffolder/fpp/quote.yaml.example

theme:
  - theme/README-patternlab.md
  - theme/README.md
  - theme/ckeditor.styles.js
  - theme/composer.json
  - theme/composer.lock
  - theme/config/config.yml
  - theme/config/listeners.json
  - theme/config/patternengines.json
  - theme/core/server/router.php
  - theme/core/src/PatternLab/Installer.php
  - theme/%theme_machine_name%.info.scaffold
  - theme/gulpfile.babel.js
  - theme/includes/css_js.inc.scaffold
  - theme/includes/fieldable_panels_pane.inc.scaffold
  - theme/includes/form.inc.scaffold
  - theme/includes/helper.inc.scaffold
  - theme/includes/menu.inc.scaffold
  - theme/includes/node.inc.scaffold
  - theme/includes/page.inc.scaffold
  - theme/includes/panels.inc.scaffold
  - theme/includes/paragraphs.inc.scaffold
  - theme/includes/theme.inc.scaffold
  - theme/includes/twig.inc.scaffold
  - theme/includes/views.inc.scaffold
  - theme/logo.png
  - theme/package.json
  - theme/public/index.html
  - theme/public/styleguide/bower_components/EventEmitter.min.js
  - theme/public/styleguide/bower_components/classList.min.js
  - theme/public/styleguide/bower_components/hogan-3.0.2.min.js
  - theme/public/styleguide/bower_components/jquery.min.js
  - theme/public/styleguide/bower_components/jwerty.min.js
  - theme/public/styleguide/bower_components/prism.min.js
  - theme/public/styleguide/bower_components/script.min.js
  - theme/public/styleguide/bower_components/typeahead.bundle.min.js
  - theme/public/styleguide/css/prism-typeahead.css
  - theme/public/styleguide/css/prism-typeahead.min.css
  - theme/public/styleguide/css/styleguide.css
  - theme/public/styleguide/css/styleguide.min.css
  - theme/public/styleguide/data/patternlab-data.js
  - theme/public/styleguide/fonts/icomoon.eot
  - theme/public/styleguide/fonts/icomoon.svg
  - theme/public/styleguide/fonts/icomoon.ttf
  - theme/public/styleguide/fonts/icomoon.woff
  - theme/public/styleguide/html/styleguide.html
  - theme/public/styleguide/js/patternlab-pattern.js
  - theme/public/styleguide/js/patternlab-pattern.min.js
  - theme/public/styleguide/js/patternlab-viewer.js
  - theme/public/styleguide/js/patternlab-viewer.min.js
  - theme/screenshot.png
  - theme/source/_meta/_00-head.twig
  - theme/source/_meta/_01-foot.twig
  - theme/source/_patterns/atoms/button/button.css
  - theme/source/_patterns/atoms/button/button.json
  - theme/source/_patterns/atoms/button/button.twig
  - theme/source/_patterns/atoms/button/button~light.json
  - theme/source/_patterns/atoms/button/button~link.json
  - theme/source/_patterns/atoms/button/button~linklight.json
  - theme/source/_patterns/molecules/.gitkeep
  - theme/source/_patterns/organisms/.gitkeep
  - theme/source/_patterns/templates/.gitkeep
  - theme/source/css/index.css
  - theme/source/index.css
  - theme/source/index.js
  - theme/source/js/index.js
  - theme/tasks/export-colors.js
  - theme/template.php
  - theme/templates/field/field.tpl.twig
  - theme/templates/layout/html.tpl.twig
  - theme/templates/system/block.tpl.twig
  - theme/templates/system/region.tpl.twig
  - theme/yarn.lock

scaffold:
  - copy_assets(%rootFolder%)
  - copy_assets(%rootFolder%/sites/all/modules/custom/%shortName%_deploy, deployModuleAssets)
  - copy_assets(%rootFolder%/sites/all/modules/custom/%shortName%_utils, utilsModuleAssets)
  - copy_assets(%rootFolder%/ssh-keys, sshKeys)
  - copy_assets(%rootFolder%/.tools, entityScaffolder)
  - copy_assets(%rootFolder%/sites/all/themes/custom/%shortName%_frontend, theme, .scaffold)