Skip to content

[quality] Expand shellcheck CI to cover all 11 shell scripts in system_files/ #552

Description

@kubestellar-hive

Finding

The validate.yml workflow currently runs shellcheck only on a single file (ublue-rollback-helper), but the repository contains 11 shell scripts in system_files/ that execute on user login or system setup:

Profile scripts (run on every shell login):

  • system_files/bluefin/etc/profile.d/caffeinate.sh
  • system_files/bluefin/etc/profile.d/open.sh
  • system_files/bluefin/etc/profile.d/uutils.sh
  • system_files/shared/etc/profile.d/ublue-fastfetch.sh
  • system_files/shared/etc/profile.d/ublue-motd.sh
  • system_files/shared/etc/profile.d/umotd.sh

System/user setup scripts:

  • system_files/shared/usr/lib/ublue/setup-services/libsetup.sh
  • system_files/shared/usr/share/ublue-os/bling/bling.sh
  • system_files/bluefin/usr/share/ublue-os/bling/env.sh
  • system_files/bluefin/usr/share/ublue-os/user-setup.hooks.d/20-dynamic-wallpaper.sh
  • system_files/shared/usr/bin/ublue-image-info.sh

A syntax error in any profile.d script would break user shells on login. A bug in libsetup.sh could break first-boot configuration.

Recommendation

Expand the shellcheck CI step in validate.yml to lint all .sh files:

- name: Shellcheck all shell scripts
  shell: bash
  run: |
    find system_files -name *.sh -print0 | xargs -0 shellcheck -e SC2207
    shellcheck -e SC2207 system_files/bluefin/usr/bin/ublue-rollback-helper

Priority

  • Impact: high (profile.d scripts run on every login)
  • Effort: low (one-line CI change)

Filed by quality agent (hold-gated mode)

Metadata

Metadata

Assignees

No one assigned

    Labels

    1-triageNew work awaiting human triage.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions