Skip to content

Add backslash line continuation to package install scripts - #708

Closed
ryanjbonnell wants to merge 8 commits into
serversideup:release/webserver-improvements-and-fixesfrom
ryanjbonnell:patch-1
Closed

ryanjbonnell wants to merge 8 commits into
serversideup:release/webserver-improvements-and-fixesfrom
ryanjbonnell:patch-1

Conversation

@ryanjbonnell

Copy link
Copy Markdown

This update allows for packages to be installed using line continuation, improving the developer experience writing Dockerfile commands.

Presently, the docker-php-serversideup-dep-install-debian (or -alpine) commands allow for one or more packages to be installed using spaces or commas:

# Single package
RUN docker-php-serversideup-dep-install-debian git

# Space separated
RUN docker-php-serversideup-dep-install-debian git zip

# Comma separated
RUN docker-php-serversideup-dep-install-debian "git,zip"

RUN docker-php-serversideup-dep-install-debian "git, zip"

With these changes, the command can now accept packages across lines using the backspace line continuation method, as well as other existing methods.

RUN docker-php-serversideup-dep-install-debian \
        bat \
        eza \
        fd-find \
        less \
        nano \
        ripgrep \
        zip

This greatly increases readability, and allows for cleaner diffs when many packages are listed. It remains fully backwards compatible with no breaking changes.

The inspiration came from using the command alongside install-php-extensions, which neatly allowed for line breaks:

RUN install-php-extensions \
       pdo_snowflake-4.2.0 \
       pdo_sqlsrv-5.13.3 \
       sqlsrv-5.13.3

If by chance an empty string is passed in as an argument, an INFO message is displayed and allows the script to continue with an exit code of zero.

I've found this to be immensely helpful in my own work and wanted to share it with others.

@jaydrogers
jaydrogers changed the base branch from main to release/webserver-improvements-and-fixes September 25, 2026 23:49
dependabot Bot and others added 2 commits September 28, 2026 13:10
…erversideup#709)

Bumps [@serversideup/project-switcher-bar](https://github.com/serversideup/project-switcher-bar) from 0.0.6 to 0.0.9.
- [Commits](serversideup/project-switcher-bar@v0.0.6...v0.0.9)

---
updated-dependencies:
- dependency-name: "@serversideup/project-switcher-bar"
  dependency-version: 0.0.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
jaydrogers pushed a commit that referenced this pull request Oct 1, 2026
…cripts

Previously only the first argument was used, so packages passed as separate
arguments were silently skipped. Also disables globbing while splitting and
skips the install when no packages are given.

From #708. Resolved conflicts with the release branch and added a ShellCheck
directive for the intentional word split.
@jaydrogers

Copy link
Copy Markdown
Member

Thanks @ryanjbonnell! It fixed a bug I didn't know we had. The script only read the first argument, so packages passed as separate arguments were silently skipped 🤪

I cherry-picked your commits into #645 instead of merging this PR because there were some merge conflicts. I resolved the conflicts and added a ShellCheck directive so it passes our lint. The commit is still under your name:

I also cleaned up my own code after you added this great improvement. It all ships with 5.0. Thanks again 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants