diff --git a/src/libexec/lib/manager_installers.nu b/src/libexec/lib/manager_installers.nu index 1e30ac7..94b69f0 100644 --- a/src/libexec/lib/manager_installers.nu +++ b/src/libexec/lib/manager_installers.nu @@ -37,6 +37,18 @@ export def pipx_install [yes: bool, packages: list] { } } +export def zap_install [yes: bool, packages: list] { + for $package in $packages { + run-external zap install $package + } +} + +export def flatpak_install [yes: bool, packages: list] { + for $package in $packages { + run-external flatpak install $package + } +} + export def brew_install [yes: bool, packages: list] { let brew_path = "/home/linuxbrew/.linuxbrew/bin/brew" if ((which brew | length) != 0) or ($brew_path | path exists) { @@ -90,6 +102,19 @@ export def pipx_uninstall [yes: bool, packages: list] { } } +export def zap_uninstall [yes: bool, packages: list] { + for $package in $packages { + run-external zap remove $package + } +} + +export def flatpak_uninstall [yes: bool, packages: list] { + for $package in $packages { + run-external flatpak remove $package + } + run-external flatpak remove '--unused' +} + export def brew_uninstall [yes: bool, packages: list] { let brew_path = "/home/linuxbrew/.linuxbrew/bin/brew" if ((which brew | length) == 0) and (not ($brew_path | path exists)) { diff --git a/src/libexec/manager.nu b/src/libexec/manager.nu index ebe4d47..51f34a9 100755 --- a/src/libexec/manager.nu +++ b/src/libexec/manager.nu @@ -2,9 +2,9 @@ use lib/user_interaction.nu [user_prompt] use lib/distrobox.nu [DISTROBOXES_META, gen_export_string] -use lib/manager_installers.nu [brew_install, nix_install, distrobox_install, pipx_install, brew_uninstall, nix_uninstall, distrobox_uninstall, pipx_uninstall] +use lib/manager_installers.nu [flatpak_install, zap_install, brew_install, nix_install, distrobox_install, pipx_install, brew_uninstall, nix_uninstall, distrobox_uninstall, pipx_uninstall] -# Available package managers: ["apt", "brew", "nix", "dnf", "yum", "paru", "pacman", "pipx"] +# Available package managers: ["apt", "brew", "nix", "dnf", "yum", "paru", "pacman", "pipx", "zap", "flatpak"] export def "main manager" [] { echo "Usage manager ." } @@ -60,6 +60,8 @@ export def "main manager install" [ nix => { nix_install $yes $packages ; exit 0 }, brew => { brew_install $yes $packages ; exit 0 }, pipx => { pipx_install $yes $packages ; exit 0 }, + zap => { zap_install $yes $packages ; exit 0 }, + flatpak => { flatpak_install $yes $packages ; exit 0 }, } distrobox_install $package_data (match $package_manager { @@ -108,6 +110,8 @@ export def "main manager remove" [ nix => { nix_uninstall $yes $packages ; exit 0 }, brew => { brew_uninstall $yes $packages ; exit 0 }, pipx => { pipx_uninstall $yes $packages ; exit 0 }, + flatpak => { flatpak_uninstall $yes $packages ; exit 0 }, + zap => { zap_uninstall $yes $packages ; exit 0 }, } distrobox_uninstall $package_data (match $package_manager {