import path from "path"; import fs from "fs-extra"; import fg from "fast-glob"; import IScriptParams from "../../interfaces/IScriptParams"; export default async function execute(params: IScriptParams) { // delete all files in /public/img/wiki/ const publicImgWikiPath = path.join(process.cwd(), "public/img/wiki"); try { if (fs.existsSync(publicImgWikiPath)) { const files = fs.readdirSync(publicImgWikiPath); for (const file of files) { fs.unlinkSync(path.join(publicImgWikiPath, file)); } } else { fs.mkdirSync(publicImgWikiPath, { recursive: true }); } } catch (e) { throw new Error("Please delete all files in /public/img/wiki/ manually."); } // recursively retrieve all /img folder paths in working directory/InvestWiki/wiki/ const wikiImgPaths = await fg("**/img", { cwd: path.join(process.cwd(), "InvestWiki/wiki"), onlyDirectories: true, absolute: false, }); // copy all image directories to /public/img/wiki/ for (const wikiImgPath of wikiImgPaths) { const srcPath = path.join(process.cwd(), "InvestWiki/wiki", wikiImgPath); const destPath = path.join(process.cwd(), "public/img/wiki", wikiImgPath); fs.mkdirSync(destPath, { recursive: true }); const files = fs.readdirSync(srcPath); for (const file of files) { console.log( "copying", path.join(srcPath, file), "to", path.join(destPath, file) ); try { fs.copySync(path.join(srcPath, file), path.join(destPath, file), { overwrite: false, }); } catch (e) { console.error(e); } } } }