Skip to content

Instantly share code, notes, and snippets.

@MatthieuLemoine
Last active February 6, 2017 10:21
Show Gist options
  • Save MatthieuLemoine/38079f14d326bcef854dbcd63dee5f16 to your computer and use it in GitHub Desktop.
Save MatthieuLemoine/38079f14d326bcef854dbcd63dee5f16 to your computer and use it in GitHub Desktop.
Post babel build. Copy missing files.
#!/usr/bin/env node
const glob = require('glob');
const fs = require('fs');
const sh = require('shelljs');
const SRC_DIR = 'src';
const DEST_DIR = 'build';
glob(`${SRC_DIR}/**/*(*.json|!(*.js))`, (err, files) => {
if (err) {
throw err;
}
const srcDirectories = files.filter(file => fs.lstatSync(file).isDirectory());
const destDirectories = srcDirectories.map(directory => directory.replace(SRC_DIR, DEST_DIR));
const srcFiles = files.filter(file => fs.lstatSync(file).isFile());
const destFiles = srcFiles.map(file => file.replace(SRC_DIR, DEST_DIR));
// Create missing directories
sh.mkdir('-p', destDirectories);
// Copy files
destFiles.forEach((file, index) => {
const srcFile = srcFiles[index];
process.stdout.write(`${srcFile} -> ${file}\n`);
sh.cp(srcFiles[index], file);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment