From 31df83bb2f89c4020b057fb17b5fbe88a80a885c Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Wed, 22 Nov 2023 14:02:55 -0500 Subject: [PATCH] fix(repo): use a platform agnostic copy script (#20364) --- packages/nx/project.json | 2 +- scripts/copy.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 scripts/copy.js diff --git a/packages/nx/project.json b/packages/nx/project.json index cd35f26dd5..31f2db84de 100644 --- a/packages/nx/project.json +++ b/packages/nx/project.json @@ -20,7 +20,7 @@ } }, "copy-native-package-directories": { - "command": "cp -R build/packages/nx/native-packages/* build/packages" + "command": "node scripts/copy.js build/packages/nx/native-packages/* build/packages" }, "artifacts": { "dependsOn": ["copy-native-package-directories"], diff --git a/scripts/copy.js b/scripts/copy.js new file mode 100644 index 0000000000..799d4f347c --- /dev/null +++ b/scripts/copy.js @@ -0,0 +1,30 @@ +//@ts-check +const { mkdirSync, copySync } = require('fs-extra'); +const glob = require('fast-glob'); +const { join, basename } = require('path'); + +const p = process.argv[2]; + +const args = process.argv.slice(2); +const dest = args[args.length - 1]; +const from = args.slice(0, args.length - 1); + +try { + mkdirSync(dest, { + recursive: true, + }); +} catch {} +for (const f of from) { + const matchingFiles = glob.sync(f, { + cwd: process.cwd(), + onlyDirectories: true, + }); + + console.log(f, matchingFiles); + + for (const file of matchingFiles) { + const destFile = join(dest, basename(file)); + console.log(file, '=>', destFile); + copySync(file, destFile); + } +}