Added getBackupFilePath to settings-path-manager module
refs https://linear.app/tryghost/issue/CORE-35/refactor-route-and-redirect-settings - getBackupFilePath is yet another utility function tha's used often with Ghost config files like so: -ca149f2c0e/core/server/services/redirects/settings.js (L147-L151)
-ca149f2c0e/core/server/services/route-settings/route-settings.js (L42-L45)
This commit is contained in:
parent
8f4c4f66b5
commit
98f4f90b19
@ -1,5 +1,6 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const tpl = require('@tryghost/tpl');
|
const tpl = require('@tryghost/tpl');
|
||||||
|
const format = require('date-fns/format');
|
||||||
const {IncorrectUsageError} = require('@tryghost/errors');
|
const {IncorrectUsageError} = require('@tryghost/errors');
|
||||||
|
|
||||||
const messages = {
|
const messages = {
|
||||||
@ -35,6 +36,12 @@ class SettingsPathManager {
|
|||||||
const settingsFolder = this.defaultPath;
|
const settingsFolder = this.defaultPath;
|
||||||
return path.join(settingsFolder, `${this.filename}.${this.defaultExtension}`);
|
return path.join(settingsFolder, `${this.filename}.${this.defaultExtension}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getBackupFilePath() {
|
||||||
|
const settingsFolder = this.defaultPath;
|
||||||
|
const dateStamp = format(new Date(), 'yyyy-MM-dd-HH-mm-ss');
|
||||||
|
return path.join(settingsFolder, `${this.filename}-${dateStamp}.${this.defaultExtension}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = SettingsPathManager;
|
module.exports = SettingsPathManager;
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
"sinon": "11.1.2"
|
"sinon": "11.1.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"date-fns": "^2.24.0",
|
||||||
"tpl": "^0.3.0"
|
"tpl": "^0.3.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,18 @@ describe('Settings Path Manager', function () {
|
|||||||
path.should.equal('/content/data/redirects.json');
|
path.should.equal('/content/data/redirects.json');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getBackupFilePath', function () {
|
||||||
|
it('returns a path to store a backup', function (){
|
||||||
|
const settingsPathManager = new SettingsPathManager({
|
||||||
|
paths: ['/content/data', '/content/settings'],
|
||||||
|
type: 'routes',
|
||||||
|
extensions: ['yaml']
|
||||||
|
});
|
||||||
|
|
||||||
|
const path = settingsPathManager.getBackupFilePath();
|
||||||
|
|
||||||
|
path.should.match(/\/content\/data\/routes-\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}.yaml/);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user