diff --git a/src/config.js b/src/config.js index dc2ed9ee9..93731ad3e 100644 --- a/src/config.js +++ b/src/config.js @@ -4,6 +4,8 @@ exports = module.exports = { baseDir: baseDir, + dnsInSync: dnsInSync, + setDnsInSync: setDnsInSync, // values set here will be lost after a upgrade/update. use the sqlite database // for persistent values that need to be backed up @@ -55,6 +57,15 @@ function baseDir() { } var cloudronConfigFileName = path.join(baseDir(), 'configs/cloudron.conf'); +var cloudronDnsInSyncFilePath = path.join(baseDir(), 'dns_in_sync'); + +function dnsInSync() { + return !!safe.fs.statSync(cloudronDnsInSyncFilePath); +} + +function setDnsInSync(content) { + safe.fs.writeFileSync(cloudronDnsInSyncFilePath, content || 'if this file exists, dns is in sync'); +} function saveSync() { fs.writeFileSync(cloudronConfigFileName, JSON.stringify(data, null, 4)); // functions are ignored by JSON.stringify @@ -83,7 +94,6 @@ function initConfig() { accessKeyId: null, // selfhosting only secretAccessKey: null // selfhosting only }; - data.dnsInSync = false; if (exports.CLOUDRON) { data.port = 3000; diff --git a/src/test/config-test.js b/src/test/config-test.js index 8eb268660..feeb9a3c9 100644 --- a/src/test/config-test.js +++ b/src/test/config-test.js @@ -28,6 +28,17 @@ describe('config', function () { done(); }); + it('dnsInSync() is unset', function (done) { + expect(config.dnsInSync()).to.not.be.ok(); + done(); + }); + + it('dnsInSync() is set', function (done) { + config.setDnsInSync(); + expect(config.dnsInSync()).to.be.ok(); + done(); + }); + it('cloudron.conf generated automatically', function (done) { expect(fs.existsSync(path.join(config.baseDir(), 'configs/cloudron.conf'))).to.be.ok(); done();