From c4e47c955511a1beb2c33f3f2282ba705bc49d5c Mon Sep 17 00:00:00 2001 From: Katharina Irrgang Date: Wed, 5 Oct 2016 16:04:03 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20=20remove=20implementation=20of?= =?UTF-8?q?=20validate=20themes=20(#7490)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit no issue - theme validation is handled by gscan --- core/server/index.js | 15 ------- core/server/utils/validate-themes.js | 65 ---------------------------- core/test/unit/server_utils_spec.js | 62 -------------------------- 3 files changed, 142 deletions(-) delete mode 100644 core/server/utils/validate-themes.js diff --git a/core/server/index.js b/core/server/index.js index 26915c31b0..2b543b6d87 100644 --- a/core/server/index.js +++ b/core/server/index.js @@ -20,7 +20,6 @@ var debug = require('debug')('ghost:boot:init'), i18n = require('./i18n'), api = require('./api'), config = require('./config'), - logging = require('./logging'), middleware = require('./middleware'), db = require('./data/schema'), models = require('./models'), @@ -31,7 +30,6 @@ var debug = require('debug')('ghost:boot:init'), slack = require('./data/slack'), GhostServer = require('./ghost-server'), scheduling = require('./scheduling'), - validateThemes = require('./utils/validate-themes'), readDirectory = require('./utils/read-directory'), utils = require('./utils'), dbHash; @@ -116,19 +114,6 @@ function init(options) { middleware(parentApp); debug('Express done'); - // Log all theme errors and warnings - validateThemes(config.getContentPath('themes')) - .catch(function (result) { - // TODO: change `result` to something better - result.errors.forEach(function (err) { - logging.error(err); - }); - - result.warnings.forEach(function (warn) { - logging.warn(warn.message); - }); - }); - return auth.init(config.get('auth')) .then(function (response) { parentApp.use(response.auth); diff --git a/core/server/utils/validate-themes.js b/core/server/utils/validate-themes.js deleted file mode 100644 index 645468e539..0000000000 --- a/core/server/utils/validate-themes.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Dependencies - */ - -var readThemes = require('./read-themes'), - Promise = require('bluebird'), - _ = require('lodash'), - i18n = require('../i18n'); - -/** - * Validate themes: - * - * 1. Check if theme has package.json - */ - -function validateThemes(dir) { - var result = { - warnings: [], - errors: [] - }; - - return readThemes(dir) - .tap(function (themes) { - _.each(themes, function (theme, name) { - var hasPackageJson, warning; - - hasPackageJson = theme['package.json'] !== undefined; - - if (!hasPackageJson) { - warning = { - message: i18n.t('errors.utils.validatethemes.themeWithNoPackage.message'), - context: i18n.t('errors.utils.validatethemes.themeWithNoPackage.context', {name: name}), - help: i18n.t('errors.utils.validatethemes.themeWithNoPackage.help', {url: 'http://docs.ghost.org/themes/'}) - }; - - result.warnings.push(warning); - } - - // if package.json is `null`, it means that it exists - // but JSON.parse failed (invalid json syntax) - if (hasPackageJson && theme['package.json'] === null) { - warning = { - message: i18n.t('errors.utils.validatethemes.malformedPackage.message'), - context: i18n.t('errors.utils.validatethemes.malformedPackage.context', {name: name}), - help: i18n.t('errors.utils.validatethemes.malformedPackage.help', {url: 'http://docs.ghost.org/themes/'}) - }; - - result.warnings.push(warning); - } - }); - }) - .then(function () { - var hasNotifications = result.warnings.length || result.errors.length; - - if (hasNotifications) { - return Promise.reject(result); - } - }); -} - -/** - * Expose `validateThemes` - */ - -module.exports = validateThemes; diff --git a/core/test/unit/server_utils_spec.js b/core/test/unit/server_utils_spec.js index 97da3c1498..d202e94863 100644 --- a/core/test/unit/server_utils_spec.js +++ b/core/test/unit/server_utils_spec.js @@ -2,7 +2,6 @@ var should = require('should'), sinon = require('sinon'), nock = require('nock'), parsePackageJson = require('../../server/utils/parse-package-json'), - validateThemes = require('../../server/utils/validate-themes'), readDirectory = require('../../server/utils/read-directory'), readThemes = require('../../server/utils/read-themes'), gravatar = require('../../server/utils/gravatar'), @@ -367,67 +366,6 @@ describe('Server Utilities', function () { }); }); - describe('validate-themes', function () { - it('should return warnings for themes without package.json', function (done) { - var themesPath, pkgJson; - - themesPath = tmp.dirSync({unsafeCleanup: true}); - pkgJson = JSON.stringify({ - name: 'casper', - version: '1.0.0' - }); - - fs.mkdirSync(join(themesPath.name, 'casper')); - fs.mkdirSync(join(themesPath.name, 'invalid-casper')); - - fs.writeFileSync(join(themesPath.name, 'casper', 'package.json'), pkgJson); - - validateThemes(themesPath.name) - .then(function () { - done(new Error('validateThemes succeeded, but should\'ve failed')); - }) - .catch(function (result) { - result.errors.length.should.equal(0); - result.warnings.should.eql([{ - message: 'Found a theme with no package.json file', - context: 'Theme name: invalid-casper', - help: 'This will be required in future. Please see http://docs.ghost.org/themes/' - }]); - - done(); - }) - .catch(done) - .finally(themesPath.removeCallback); - }); - - it('should return warning for theme with invalid package.json', function (done) { - var themesPath, pkgJson; - - themesPath = tmp.dirSync({unsafeCleanup: true}); - pkgJson = '{"name":casper}'; - - fs.mkdirSync(join(themesPath.name, 'casper')); - fs.writeFileSync(join(themesPath.name, 'casper', 'package.json'), pkgJson); - - validateThemes(themesPath.name) - .then(function () { - done(new Error('validateThemes succeeded, but should\'ve failed')); - }) - .catch(function (result) { - result.errors.length.should.equal(0); - result.warnings.should.eql([{ - message: 'Found a malformed package.json', - context: 'Theme name: casper', - help: 'Valid package.json will be required in future. Please see http://docs.ghost.org/themes/' - }]); - - done(); - }) - .catch(done) - .finally(themesPath.removeCallback); - }); - }); - describe('gravatar-lookup', function () { var currentEnv = process.env.NODE_ENV;