blue-build / modules

BlueBuild standard modules used for building your Atomic Images
Apache License 2.0
21 stars 27 forks source link

refactor(gnome-extensions): Support for automatic install of latest G… #238

Closed fiftydinar closed 1 month ago

fiftydinar commented 1 month ago

…nome extensions

Also adds support for uninstalling extensions.

Extension name is used as a format for module recipe input. Extension ID format is inconsistent in results, hence the reason why it's not implemented, as noted here: https://github.com/blue-build/modules/issues/237#issuecomment-2132398386

Legacy config is still compatible, but it is advised to migrate to latest config. Users are warned about this in logs.

I find this pretty much ready, except I think about something down below.

Latest Gnome extension version, that is compatible with Gnome version of the image, is installed by default.

Legacy config format can be used to have support for extension version override, but I want to depreciate legacy config format in the future. So Idk If I should add this feature as an option in new config format. It can be useful in case of some extension regressions.

fiftydinar commented 1 month ago

The remaining ShellCheck warning is harmless

xynydev commented 1 month ago

The remaining ShellCheck warning is harmless

Yes, but do you really need to use =~ there?

fiftydinar commented 1 month ago

Yes, but do you really need to use =~ there?

Yes, it's needed, because metadata.json can contain multiple compatible Gnome versions, like now, where most extensions have 45 & 46 in shell-version array. == wouldn't work in this scenario.