param(
    $Action,
    [hashtable] $Arguments
)

& {
    param(
        [hashtable] $Parameters
    )

    . "$PSScriptRoot/../../../Common/Scripts/Software.ps1";
    . "$PSScriptRoot/../../../Common/Software/PowerShell/Profile.ps1";
    . "$PSScriptRoot/../../../Common/Types/InstallerAction.ps1";
    $base = "$PSScriptRoot/../../../Common/Software/zoxide/Main.ps1";

    Start-SoftwareInstaller @PSBoundParameters `
        -Installer {
            Install-ChocoPackage zoxide;
            Install-WingetPackage junegunn.fzf;
        } `
        -Configurator {
            param(
                $Arguments
            )

            & $base ([InstallerAction]::Configure) @PSBoundParameters;
        };
} $PSBoundParameters;