diff --git a/scripts/Windows/Collections/Personal.ps1 b/scripts/Windows/Collections/Personal.ps1 index 0dacdbaa..bb9f4030 100644 --- a/scripts/Windows/Collections/Personal.ps1 +++ b/scripts/Windows/Collections/Personal.ps1 @@ -2,6 +2,7 @@ . "$PSScriptRoot/../Software/git/Manage.ps1"; . "$PSScriptRoot/../Software/LGHub/Manage.ps1"; . "$PSScriptRoot/../Software/ManiaPlanet/Manage.ps1"; +. "$PSScriptRoot/../Software/Nextcloud/Manage.ps1"; . "$PSScriptRoot/../Software/osu!/Manage.ps1"; . "$PSScriptRoot/../Software/osu!lazer/Manage.ps1"; . "$PSScriptRoot/../Software/PuTTY/Manage.ps1"; @@ -26,5 +27,7 @@ function Backup-PersonalApps([Context] $context) { } function Restore-PersonalApps([Context] $context) { + choco feature enable -n useEnhancedExitCodes; + Restore-Nextcloud $context; Restore-Git $context; } diff --git a/scripts/Windows/Scripts/Context.ps1 b/scripts/Windows/Scripts/Context.ps1 index ec3a414e..3d51e6e9 100644 --- a/scripts/Windows/Scripts/Context.ps1 +++ b/scripts/Windows/Scripts/Context.ps1 @@ -205,6 +205,10 @@ class Context { }); } + [string] GetNextcloudConfigFile() { + return "$env:APPDATA/Nextcloud/nextcloud.cfg"; + } + [void] Reboot() { Write-Host "Restarting Computer..."; $this.RegisterReboot(); diff --git a/scripts/Windows/Software/Nextcloud/Manage.ps1 b/scripts/Windows/Software/Nextcloud/Manage.ps1 new file mode 100644 index 00000000..b33fa501 --- /dev/null +++ b/scripts/Windows/Software/Nextcloud/Manage.ps1 @@ -0,0 +1,18 @@ +. "$PSScriptRoot/../../Scripts/Context.ps1"; + +$null = New-Module { + function Restore-Nextcloud([Context] $context) { + if (-not (choco list --exact nextcloud-client)) { + choco install nextcloud-client -y --params="'/KeepUpdateCheck'"; + } + + while (-not (Test-Path $context.GetNextcloudConfigFile())) { + Write-Host "Nextcloud has been installed!"; + Write-Host "Please log in in the Nextcloud app to continue."; + + if (-not (Test-Path $context.GetNextcloudConfigFile())) { + Write-Error "The login seems to have failed. Please try again."; + } + } + } +}