Working on the installer
The public script drupalaibp is generated by
Bashly from the src/ directory. Never edit it by
hand; edit src/ and regenerate. CI fails the pipeline if the committed
script has drifted from src/.
Layout
| Path | Purpose |
|---|---|
src/bashly.yml |
CLI definition: commands, flags, help text |
src/*_command.sh |
One entry file per command |
src/lib/ |
Everything else, one primary function per file |
docs/cli/, man/ |
Generated CLI reference and man pages (from src/bashly.yml) |
tests/bats/ |
The test suite, one .bats file per source file |
AGENTS.md in the repo root carries the full source-layout table, the
globals list, and the event architecture. Read it before changing anything;
it is the maintainers' contract for the codebase.
The four wrappers
Each pins its tool's version and runs it in Docker, so there is nothing to install and CI runs exactly what you run:
bin/generate # regenerate drupalaibp from src/, with completeness checks
bin/docs # regenerate docs/cli/*.md and man/*.1 from src/bashly.yml
bin/test # bats test suite
bin/lint # ShellCheck (hard gate, zero findings)
bin/spell # cspell, reproducing CI's spellcheck
After editing src/, run bin/generate (and bin/docs if you touched
src/bashly.yml) and commit the regenerated output together with the
source change. A new file under src/ comes with a .bats file in the
same change; see Testing.
Publishing
Publishing is tag-driven. Merging to the development branch releases
nothing; the pages CI job runs only on tags and publishes the docs site
and the installer together. The one-liner URL
(https://aibp.drupalstarforge.ai/install.sh, redirecting to the GitLab
Pages script) therefore always serves the newest tag. To ship a change:
merge it, then tag the commit.
Testing an ai_best_practices merge request
test-mr.sh is a standalone developer tool for testing a
drupal/ai_best_practices merge request locally: it fetches the fork,
spins up a fresh DDEV Drupal CMS site, and installs the module from the
local clone.
bash <(curl -fsSL https://git.drupalcode.org/project/one_line_installer/-/raw/1.0.x/test-mr.sh) <MR-number>
Issues and merge requests
The project lives at git.drupalcode.org/project/one_line_installer, with the issue queue on drupal.org.