| 
									
										
										
										
											2024-07-14 13:03:06 +03:00
										 |  |  | import fs from "fs-extra"; | 
					
						
							|  |  |  | import path from "path"; | 
					
						
							| 
									
										
										
										
											2024-05-01 00:05:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | const DEST_DIR = "./dist"; | 
					
						
							|  |  |  | const DEST_DIR_SRC = path.join(DEST_DIR, "src"); | 
					
						
							|  |  |  | const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | async function copyNodeModuleFileOrFolder(source: string) { | 
					
						
							|  |  |  |   const adjustedSource = source.substring(13); | 
					
						
							|  |  |  |   const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   console.log(`Copying ${source} to ${destination}`); | 
					
						
							|  |  |  |   await fs.ensureDir(path.dirname(destination)); | 
					
						
							|  |  |  |   await fs.copy(source, destination); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const copy = async () => { | 
					
						
							| 
									
										
										
										
											2024-07-14 13:03:06 +03:00
										 |  |  |   for (const srcFile of fs.readdirSync("build")) {     | 
					
						
							|  |  |  |     const destFile = path.join(DEST_DIR, path.basename(srcFile)); | 
					
						
							|  |  |  |     console.log(`Copying source ${srcFile} -> ${destFile}.`); | 
					
						
							|  |  |  |     fs.copySync(path.join("build", srcFile), destFile, { recursive: true }); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 00:05:24 +02:00
										 |  |  |   const filesToCopy = ["config-sample.ini"]; | 
					
						
							|  |  |  |   for (const file of filesToCopy) { | 
					
						
							|  |  |  |     console.log(`Copying ${file}`); | 
					
						
							|  |  |  |     await fs.copy(file, path.join(DEST_DIR, file)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const dirsToCopy = ["images", "libraries", "db"]; | 
					
						
							|  |  |  |   for (const dir of dirsToCopy) { | 
					
						
							|  |  |  |     console.log(`Copying ${dir}`); | 
					
						
							|  |  |  |     await fs.copy(dir, path.join(DEST_DIR, dir)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-14 13:03:06 +03:00
										 |  |  |   const srcDirsToCopy = ["./src/public", "./src/views", "./build"]; | 
					
						
							| 
									
										
										
										
											2024-05-01 00:05:24 +02:00
										 |  |  |   for (const dir of srcDirsToCopy) { | 
					
						
							|  |  |  |     console.log(`Copying ${dir}`); | 
					
						
							|  |  |  |     await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir))); | 
					
						
							| 
									
										
										
										
											2024-07-14 13:03:06 +03:00
										 |  |  |   }   | 
					
						
							| 
									
										
										
										
											2024-05-01 00:05:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   const nodeModulesFile = [ | 
					
						
							|  |  |  |     "node_modules/react/umd/react.production.min.js", | 
					
						
							|  |  |  |     "node_modules/react/umd/react.development.js", | 
					
						
							|  |  |  |     "node_modules/react-dom/umd/react-dom.production.min.js", | 
					
						
							|  |  |  |     "node_modules/react-dom/umd/react-dom.development.js", | 
					
						
							|  |  |  |     "node_modules/katex/dist/katex.min.js", | 
					
						
							|  |  |  |     "node_modules/katex/dist/contrib/mhchem.min.js", | 
					
						
							|  |  |  |     "node_modules/katex/dist/contrib/auto-render.min.js", | 
					
						
							|  |  |  |   ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   for (const file of nodeModulesFile) { | 
					
						
							|  |  |  |     await copyNodeModuleFileOrFolder(file); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const nodeModulesFolder = [ | 
					
						
							|  |  |  |     "node_modules/@excalidraw/excalidraw/dist/", | 
					
						
							|  |  |  |     "node_modules/katex/dist/", | 
					
						
							|  |  |  |     "node_modules/dayjs/", | 
					
						
							|  |  |  |     "node_modules/force-graph/dist/", | 
					
						
							|  |  |  |     "node_modules/boxicons/css/", | 
					
						
							|  |  |  |     "node_modules/boxicons/fonts/", | 
					
						
							|  |  |  |     "node_modules/mermaid/dist/", | 
					
						
							|  |  |  |     "node_modules/jquery/dist/", | 
					
						
							|  |  |  |     "node_modules/jquery-hotkeys/", | 
					
						
							|  |  |  |     "node_modules/print-this/", | 
					
						
							|  |  |  |     "node_modules/split.js/dist/", | 
					
						
							|  |  |  |     "node_modules/panzoom/dist/", | 
					
						
							|  |  |  |   ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   for (const folder of nodeModulesFolder) { | 
					
						
							|  |  |  |     await copyNodeModuleFileOrFolder(folder); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | copy() | 
					
						
							|  |  |  |   .then(() => console.log("Copying complete!")) | 
					
						
							|  |  |  |   .catch((err) => console.error("Error during copy:", err)); |