recoverInterruptedRun method
Restores the project if a previous build or whitelabel was interrupted
(its .udara backups still exist). Without this, the stale backups
would be restored by this run's cleanup, silently reverting part of the
new client's branding.
Implementation
Future<void> recoverInterruptedRun(CleanupService cleanup) async {
if (!Directory(p.join(projectDir, '.udara')).existsSync()) return;
Logger.warning('Found leftover state from an interrupted run. '
'Restoring the project before continuing...');
await cleanup.performFullCleanup();
}