50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
grep = pkgs.gnugrep;
|
|
cfg = config.os.flatpak.apps;
|
|
flatpaks = [
|
|
"com.usebottles.bottles"
|
|
"io.github.flattool.Warehouse"
|
|
];
|
|
in
|
|
{
|
|
options.os.flatpak.apps = {
|
|
enable = mkEnableOption "System gnome apps service";
|
|
};
|
|
config = mkIf cfg.enable {
|
|
|
|
services.flatpak.enable = true;
|
|
system.userActivationScripts.flatpakManagement = {
|
|
text = ''
|
|
|
|
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists fedora oci+https://registry.fedoraproject.org
|
|
|
|
installedFlatpaks=$(${pkgs.flatpak}/bin/flatpak list --app --columns=application)
|
|
|
|
for installed in $installedFlatpaks; do
|
|
if ! echo ${toString flatpaks} | ${grep}/bin/grep -q $installed; then
|
|
echo "Suppression de $installed car il n'est pas dans la liste desiredFlatpaks."
|
|
${pkgs.flatpak}/bin/flatpak uninstall -y --noninteractive $installed
|
|
fi
|
|
done
|
|
|
|
for app in ${toString flatpaks}; do
|
|
echo "Vérification que $app est installé."
|
|
${pkgs.flatpak}/bin/flatpak install -y flathub $app
|
|
done
|
|
|
|
${pkgs.flatpak}/bin/flatpak uninstall --unused -y
|
|
${pkgs.flatpak}/bin/flatpak update -y
|
|
|
|
'';
|
|
};
|
|
|
|
};
|
|
}
|