#!/bin/pwsh
. "$PSScriptRoot/../../../Common/Scripts/Context.ps1";

$null = New-Module {
    function Restore-Nextcloud([Context] $context) {
        choco list --exact nextcloud-client

        if (-not $?) {
            Write-Information "Installing Nextcloud Client";
            choco install nextcloud-client -y --params="'/KeepUpdateCheck'";
        }

        if (-not (Test-Path $context.GetNextcloudConfigFile())) {
            Write-Information "Setting up Nextcloud configuration";

            Write-Information "Ensuring all Let's Encrypt certificates are cached";
            $null = Invoke-WebRequest https://valid-isrgrootx1.letsencrypt.org/;

            while (-not (Test-Path $context.GetNextcloudConfigFile())) {
                Write-Host "Nextcloud has been installed!";
                Read-Host "Please log in in the Nextcloud app and hit enter to continue";

                if (-not (Test-Path $context.GetNextcloudConfigFile())) {
                    Write-Error "The login seems to have failed. Please try again.";
                }
            }

            $context.Reboot();
            exit;
        }
    }
}