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)
Finding
The
validate.ymlworkflow currently runs shellcheck only on a single file (ublue-rollback-helper), but the repository contains 11 shell scripts insystem_files/that execute on user login or system setup:Profile scripts (run on every shell login):
system_files/bluefin/etc/profile.d/caffeinate.shsystem_files/bluefin/etc/profile.d/open.shsystem_files/bluefin/etc/profile.d/uutils.shsystem_files/shared/etc/profile.d/ublue-fastfetch.shsystem_files/shared/etc/profile.d/ublue-motd.shsystem_files/shared/etc/profile.d/umotd.shSystem/user setup scripts:
system_files/shared/usr/lib/ublue/setup-services/libsetup.shsystem_files/shared/usr/share/ublue-os/bling/bling.shsystem_files/bluefin/usr/share/ublue-os/bling/env.shsystem_files/bluefin/usr/share/ublue-os/user-setup.hooks.d/20-dynamic-wallpaper.shsystem_files/shared/usr/bin/ublue-image-info.shA 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.ymlto lint all.shfiles:Priority
Filed by quality agent (hold-gated mode)