ublue-os / yafti

This application is responsible for installing Flatpaks on first boot after a user finishes installation. It is intended as a replacement for custom zenity dialogs.
Apache License 2.0
55 stars 17 forks source link

Support a headless mode #4

Open marcoceppi opened 1 year ago

marcoceppi commented 1 year ago

There's a good chance some downstream image makers will want the features of package installation without any popup. One option would be to have YaftiScreen understand headless vs not headless and do an almost --assume-yes for each screen. Another option would be to have YaftiScreens describe a separate workflow for when headless. So TitleScreen would be a noop (or print to log) and PackageScreen would jump immediately to the package install step functionall and output to a log vs the console component.

xynydev commented 1 year ago

@marcoceppi 's comment in https://github.com/ublue-os/startingpoint/issues/37#issuecomment-1520554065

I'm considering moving this into Yafti repo proper. There's an architectural change which will split Yafti into several modual components.

yafti.core

This will be a silm, almost abstract base, for the minimum required to process rules, config, and templates/plugins

yafti.cli

A console only version of Yafti which will add the ability for it to be run from a CLI with a rich terminal experience

yafti.gtk

The current version of Yafti, but rebased on top of the new yafti.core. Requring libadawaita and gtk

yafti.qt

A QT-only compatible interface for the yafti.core

This split should allow yafti to work natively with any (or for CLI, no) desktop environment.

xynydev commented 1 year ago

I totally agree with that vision of splitting up yafti into multiple blocks. I think yafti.core should be everything–config parsing, package installation, state management–neatly packed into a library with an elegant api.

For yafti.core, though, I'd recommend (and gladly help with) using Nim as the programming language.

abanna commented 4 months ago

@xynydev where did you guys end up on this one?

xynydev commented 4 months ago

Nowhere. I was just idealistically bousting my favorite programming language, not willing to do any work. But good work on your end @abanna .