diff --git a/grunt/tasks/migration.js b/grunt/tasks/migration.js index 43c251c91..8d34f4700 100644 --- a/grunt/tasks/migration.js +++ b/grunt/tasks/migration.js @@ -32,6 +32,7 @@ module.exports = function(grunt) { const next = this.async(); const buildConfig = Helpers.generateConfigData(); const fileNameIncludes = grunt.option('file'); + const customScriptsDir = grunt.option('customscriptsdir'); (async function() { const migrations = await import('adapt-migrations'); @@ -80,10 +81,12 @@ module.exports = function(grunt) { logger.debug(`Using ${toFramework.useOutputData ? toFramework.outputPath : toFramework.sourcePath} folder for course data...`); const plugins = toFramework.getPlugins().getAllPackageJSONFileItems().map(fileItem => fileItem.item); const migrationScripts = Array.from(await new Promise(resolve => { - globs([ - '*/*/migrations/**/*.js', - 'core/migrations/**/*.js' - ], { cwd: path.join(cwd, './src/'), absolute: true }, (err, files) => resolve(err ? null : files)); + const globPatterns = [ + 'src/*/*/migrations/**/*.js', + 'src/core/migrations/**/*.js' + ]; + if (customScriptsDir) globPatterns.push(`${customScriptsDir}/*.js`); + globs(globPatterns, { cwd, absolute: true }, (err, files) => resolve(err ? null : files)); })).filter(filePath => { if (!fileNameIncludes) return true; return minimatch(filePath, '**/' + fileNameIncludes) || filePath.includes(fileNameIncludes);