diff --git a/lib/manager/bazel/detect.js b/lib/manager/bazel/detect.js deleted file mode 100644 index 5733855e2367af1d5f46edc23016df244a6c4dd3..0000000000000000000000000000000000000000 --- a/lib/manager/bazel/detect.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - detectPackageFiles, -}; - -async function detectPackageFiles(config, fileList) { - logger.debug('bazel.detectPackageFiles()'); - const packageFiles = []; - if (config.bazel.enabled) { - for (const file of fileList) { - if (file === 'WORKSPACE' || file.endsWith('/WORKSPACE')) { - const content = await platform.getFile(file); - if (content && content.match(/(^|\n)git_repository\(/)) { - packageFiles.push(file); - } - } - } - } - return packageFiles; -} diff --git a/lib/manager/bazel/index.js b/lib/manager/bazel/index.js index 2781d0b590ca73371ea767a20af621802ca32b2a..dfab0a11b5f1fc4a91a47ab5c7b97b8092fd3b6b 100644 --- a/lib/manager/bazel/index.js +++ b/lib/manager/bazel/index.js @@ -1,13 +1,13 @@ -const { detectPackageFiles } = require('./detect'); const { extractDependencies } = require('./extract'); const { getPackageUpdates } = require('./package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '(^|/)WORKSPACE$'; +const filePattern = new RegExp('(^|/)WORKSPACE$'); +const contentPattern = new RegExp('(^|\\n)git_repository\\('); module.exports = { - detectPackageFiles, + contentPattern, extractDependencies, filePattern, getPackageUpdates, diff --git a/lib/manager/docker/detect.js b/lib/manager/docker/detect.js deleted file mode 100644 index c2c0bb3ba8c7a9106e6ea68b3bc31b65eaf335c9..0000000000000000000000000000000000000000 --- a/lib/manager/docker/detect.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - detectPackageFiles, -}; - -async function detectPackageFiles(config, fileList) { - logger.debug('docker.detectPackageFiles()'); - const packageFiles = []; - if (config.docker.enabled) { - for (const file of fileList) { - if (file === 'Dockerfile' || file.endsWith('/Dockerfile')) { - const content = await platform.getFile(file); - if (content) { - if (content.match(/(^|\n)FROM .+\n/)) { - packageFiles.push(file); - } - } else { - logger.warn({ file }, 'No Dockerfile content'); - } - } - } - } - return packageFiles; -} diff --git a/lib/manager/docker/index.js b/lib/manager/docker/index.js index 897fa700656a112a0f61c97ba7471fb312ca9126..e29d5de6509bc98f717860091da39da60d6efa82 100644 --- a/lib/manager/docker/index.js +++ b/lib/manager/docker/index.js @@ -1,13 +1,13 @@ -const { detectPackageFiles } = require('./detect'); const { extractDependencies } = require('./extract'); const { getPackageUpdates } = require('./package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '(^|/)Dockerfile$'; +const filePattern = new RegExp('(^|/)Dockerfile$'); +const contentPattern = new RegExp('(^|\\n)FROM .+\\n', 'i'); module.exports = { - detectPackageFiles, + contentPattern, extractDependencies, filePattern, getPackageUpdates, diff --git a/lib/manager/index.js b/lib/manager/index.js index 5e9cf01f959c239309c3d482a7657dc9d51df0cb..b550b8bf9ad0e526e468b6eafcb06b9b82adbabd 100644 --- a/lib/manager/index.js +++ b/lib/manager/index.js @@ -30,13 +30,24 @@ async function detectPackageFiles(config) { ); for (const manager of managerList) { logger.debug(`Detecting package files (${manager})`); - let files; + let files = []; if (managers[manager].detectPackageFiles) { files = await managers[manager].detectPackageFiles(config, fileList); } else { - files = fileList.filter(file => + const allfiles = fileList.filter(file => file.match(managers[manager].filePattern) ); + for (const file of allfiles) { + const { contentPattern } = managers[manager]; + if (contentPattern) { + const content = await platform.getFile(file); + if (content && content.match(contentPattern)) { + files.push(file); + } + } else { + files.push(file); + } + } } if (files.length) { logger.info({ manager, files }, `Detected package files`); diff --git a/lib/manager/meteor/detect.js b/lib/manager/meteor/detect.js deleted file mode 100644 index 079753a5f0c7f3a025a30ece83135b82dc85638d..0000000000000000000000000000000000000000 --- a/lib/manager/meteor/detect.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - detectPackageFiles, -}; - -async function detectPackageFiles(config, fileList) { - logger.debug('meteor.detectPackageFiles()'); - const packageFiles = []; - if (config.meteor.enabled) { - for (const file of fileList) { - if (file === 'package.js' || file.endsWith('/package.js')) { - const content = await platform.getFile(file); - if (content && content.replace(/\s/g, '').includes('Npm.depends({')) { - packageFiles.push(file); - } - } - } - } - return packageFiles; -} diff --git a/lib/manager/meteor/index.js b/lib/manager/meteor/index.js index 4b403b1384715df121b09e5728ce73638e4f6aba..ef29e697ce3f8cf265019f8e4c5c1d6a5a559734 100644 --- a/lib/manager/meteor/index.js +++ b/lib/manager/meteor/index.js @@ -1,13 +1,13 @@ -const { detectPackageFiles } = require('./detect'); const { extractDependencies } = require('./extract'); const { getPackageUpdates } = require('../npm/package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '(^|/)package.js$'; +const filePattern = new RegExp('(^|/)package.js$'); +const contentPattern = new RegExp('(^|\\n)\\s*Npm.depends\\(\\s*{'); module.exports = { - detectPackageFiles, + contentPattern, extractDependencies, filePattern, getPackageUpdates, diff --git a/lib/manager/npm/index.js b/lib/manager/npm/index.js index 2b9cb0953ad716864db75a1271f22135b1d8487e..58f7fe187f1a04946eb6d018d5a8dfa58c5019c1 100644 --- a/lib/manager/npm/index.js +++ b/lib/manager/npm/index.js @@ -4,7 +4,7 @@ const { getPackageUpdates } = require('./package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '(^|/)package.json$'; +const filePattern = new RegExp('(^|/)package.json$'); module.exports = { detectPackageFiles, diff --git a/lib/manager/nvm/index.js b/lib/manager/nvm/index.js index 1994de87616168b607ecde476f1f224ef58e017b..3e0c887284602673d868bd145c4a1fe41c35ad24 100644 --- a/lib/manager/nvm/index.js +++ b/lib/manager/nvm/index.js @@ -3,7 +3,7 @@ const { getPackageUpdates } = require('./package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '^.nvmrc$'; +const filePattern = new RegExp('^.nvmrc$'); module.exports = { extractDependencies, diff --git a/lib/manager/travis/index.js b/lib/manager/travis/index.js index 7149d5974d2d67514daf85e900312e0c1eb9ca72..d3e12e07bfa434c21cdfcf397aefc10be9fdce6b 100644 --- a/lib/manager/travis/index.js +++ b/lib/manager/travis/index.js @@ -3,7 +3,7 @@ const { getPackageUpdates } = require('./package'); const { resolvePackageFile } = require('./resolve'); const { setNewValue } = require('./update'); -const filePattern = '^.travis.yml$'; +const filePattern = new RegExp('^.travis.yml$'); module.exports = { extractDependencies, diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js index 8636d2539699267ba39375210dac064622ab7961..03651df944caeec32dac956e15a9400d7bc4f596 100644 --- a/test/manager/index.spec.js +++ b/test/manager/index.spec.js @@ -90,6 +90,7 @@ describe('manager', () => { platform.getFileList.mockReturnValueOnce([ 'WORKSPACE', 'other/WORKSPACE', + 'empty/WORKSPACE', ]); platform.getFile.mockReturnValueOnce('\n\ngit_repository(\n\n)\n'); platform.getFile.mockReturnValueOnce( @@ -98,6 +99,7 @@ describe('manager', () => { 'utf8' ) ); + platform.getFile.mockReturnValueOnce('foo'); const res = await manager.detectPackageFiles(config); expect(res).toMatchSnapshot(); expect(res).toHaveLength(2);