diff options
author | Matthias Villiger | 2019-10-15 16:31:19 +0000 |
---|---|---|
committer | Matthias Villiger | 2019-10-16 08:47:02 +0000 |
commit | 1ce49fbf8b575ad8c1647e10076bf5301aa3b73a (patch) | |
tree | 2a5d7a2785b4d1faf9e2bae68bad376a0869df70 /eclipse-scout-cli | |
parent | a77fb806ffea6feefdbd7c2a99965ac4af37102b (diff) | |
download | org.eclipse.scout.rt-1ce49fbf8b575ad8c1647e10076bf5301aa3b73a.tar.gz org.eclipse.scout.rt-1ce49fbf8b575ad8c1647e10076bf5301aa3b73a.tar.xz org.eclipse.scout.rt-1ce49fbf8b575ad8c1647e10076bf5301aa3b73a.zip |
Support for minimized script artifacts
Diffstat (limited to 'eclipse-scout-cli')
-rw-r--r-- | eclipse-scout-cli/scripts/list-files.js | 20 | ||||
-rw-r--r-- | eclipse-scout-cli/scripts/post-build.js | 14 |
2 files changed, 29 insertions, 5 deletions
diff --git a/eclipse-scout-cli/scripts/list-files.js b/eclipse-scout-cli/scripts/list-files.js new file mode 100644 index 0000000000..3a36cc2c8d --- /dev/null +++ b/eclipse-scout-cli/scripts/list-files.js @@ -0,0 +1,20 @@ +/* + * Copyright (c) BSI Business Systems Integration AG. All rights reserved. + * http://www.bsiag.com/ + */ +const fs = require('fs'); +const path = require('path'); + +const _getAllFiles = dir => { + if (!fs.existsSync(dir)) { + return []; + } + + return fs.readdirSync(dir).reduce((files, file) => { + const name = path.join(dir, file); + const isDirectory = fs.statSync(name).isDirectory(); + return isDirectory ? [...files, ..._getAllFiles(name)] : [...files, name]; + }, []); +}; + +module.exports = _getAllFiles; diff --git a/eclipse-scout-cli/scripts/post-build.js b/eclipse-scout-cli/scripts/post-build.js index b189d47d0b..7fc5e7ce65 100644 --- a/eclipse-scout-cli/scripts/post-build.js +++ b/eclipse-scout-cli/scripts/post-build.js @@ -12,6 +12,7 @@ const fs = require('fs'); const path = require('path'); const THEME_JS_OUT_FILTER = f => /.*theme.*\.js/.test(f); +const listFiles = require('./list-files'); function deleteFile(filename) { fs.access(filename, fs.constants.W_OK, err => { @@ -32,13 +33,16 @@ module.exports = { createFileList: dir => { const scoutBuild = require('./constants'); let content = ''; - fs.readdirSync(dir, {withFileTypes: true}) - .filter(dirent => dirent.isFile()) - .map(dirent => dirent.name) + listFiles(dir) .filter(fileName => fileName !== scoutBuild.fileListName) .filter(fileName => !THEME_JS_OUT_FILTER(fileName)) + .map(file => file.substring(dir.length + 1)) + .map(path => path.replace(/\\/g, '/')) .map(fileName => `${fileName}\n`) .forEach(line => content += line); + if (content.length < 1) { + return; + } fs.writeFileSync(path.join(dir, scoutBuild.fileListName), content, {flag: 'w'}); console.log(`created ${scoutBuild.fileListName}:\n${content}`); }, @@ -46,9 +50,9 @@ module.exports = { if (!fs.existsSync(dir)) { return; } - fs.readdirSync(dir) + listFiles(dir) .filter(THEME_JS_OUT_FILTER) - .forEach(f => deleteFile(path.join(dir, f))); + .forEach(f => deleteFile(f)); } }; |