diff --git a/src/backups.js b/src/backups.js index 65c590585..56b3a8f34 100644 --- a/src/backups.js +++ b/src/backups.js @@ -22,6 +22,7 @@ exports = module.exports = { download: download, cleanup: cleanup, + cleanupCacheFilesSync: cleanupCacheFilesSync, // for testing _getBackupFilePath: getBackupFilePath, @@ -865,6 +866,15 @@ function cleanupBoxBackups(backupConfig, callback) { }); } +function cleanupCacheFilesSync() { + var files = safe.fs.readdirSync(path.join(paths.BACKUP_INFO_DIR)); + if (!files) return; + + files.filter(function (f) { return f.endsWith('.sync.cache'); }).forEach(function (f) { + safe.fs.unlinkSync(path.join(paths.BACKUP_INFO_DIR, f)); + }); +} + // removes the snapshots of apps that have been uninstalled function cleanupSnapshots(backupConfig, callback) { assert.strictEqual(typeof backupConfig, 'object'); diff --git a/src/settings.js b/src/settings.js index 088eb87c4..5f097af66 100644 --- a/src/settings.js +++ b/src/settings.js @@ -415,6 +415,8 @@ function setBackupConfig(backupConfig, callback) { if (error && error.reason === BackupsError.EXTERNAL_ERROR) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, error.message)); if (error) return callback(new SettingsError(SettingsError.INTERNAL_ERROR, error)); + backups.cleanupCacheFilesSync(); + settingsdb.set(exports.BACKUP_CONFIG_KEY, JSON.stringify(backupConfig), function (error) { if (error) return callback(new SettingsError(SettingsError.INTERNAL_ERROR, error));