From d2604e91d44e6996a11e308b3880d0dbf2f7511b Mon Sep 17 00:00:00 2001 From: alexpietsch <54153428+alexpietsch@users.noreply.github.com> Date: Wed, 1 May 2024 00:05:24 +0200 Subject: [PATCH] feat: add ts script for cross plattform use --- bin/copy-dist.sh | 27 ------------------ bin/copy-dist.ts | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 73 insertions(+), 28 deletions(-) delete mode 100755 bin/copy-dist.sh create mode 100644 bin/copy-dist.ts diff --git a/bin/copy-dist.sh b/bin/copy-dist.sh deleted file mode 100755 index 3c4446903..000000000 --- a/bin/copy-dist.sh +++ /dev/null @@ -1,27 +0,0 @@ -DEST_DIR="./dist" -DEST_DIR_SRC="$DEST_DIR/src" -DEST_DIR_NODE_MODULES="$DEST_DIR/node_modules" - -for d in 'images' 'libraries' 'db' ; do - echo "Copying $d" - cp -r "$d" "$DEST_DIR"/ -done - -for d in './src/public' './src/views' ; do - echo "Copying $d" - cp -r "$d" "$DEST_DIR_SRC"/ -done - -mkdir "$DEST_DIR_NODE_MODULES" - -cd node_modules - -for m in 'react/umd/react.production.min.js' 'react/umd/react.development.js' 'react-dom/umd/react-dom.production.min.js' 'react-dom/umd/react-dom.development.js' 'katex/dist/katex.min.js' 'katex/dist/contrib/mhchem.min.js' 'katex/dist/contrib/auto-render.min.js'; do - echo "Copying $m" - cp --parents "$m" ../"$DEST_DIR_NODE_MODULES" -done - -for m in '@excalidraw/excalidraw/dist/' 'katex/dist/' 'dayjs/' 'force-graph/dist/' 'boxicons/css/' 'boxicons/fonts/' 'mermaid/dist/' 'jquery/dist/' 'jquery-hotkeys/' 'print-this/' 'split.js/dist/' 'panzoom/dist/' ; do - echo "Copying $m" - cp --parents -r "$m" ../"$DEST_DIR_NODE_MODULES" -done diff --git a/bin/copy-dist.ts b/bin/copy-dist.ts new file mode 100644 index 000000000..075fe19fa --- /dev/null +++ b/bin/copy-dist.ts @@ -0,0 +1,72 @@ +const fs = require("fs-extra"); +const path = require("path"); + +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 () => { + 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)); + } + + const srcDirsToCopy = ["./src/public", "./src/views"]; + for (const dir of srcDirsToCopy) { + console.log(`Copying ${dir}`); + await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir))); + } + + 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)); diff --git a/package.json b/package.json index d8679cb50..9e6506d8a 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "start-server": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts", "start-server-no-dir": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts", "qstart-server": "npm run qswitch-server && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 nodemon src/www.ts", - "start-electron": "rimraf ./dist && tsc && ./bin/copy-dist.sh && cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron ./dist/electron.js --inspect=5858 .", + "start-electron": "rimraf ./dist && tsc && ts-node ./bin/copy-dist.ts && cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron ./dist/electron.js --inspect=5858 .", "start-electron-no-dir": "cross-env TRILIUM_SAFE_MODE=1 TRILIUM_ENV=dev TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 electron --inspect=5858 .", "qstart-electron": "npm run qswitch-electron && TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev electron --inspect=5858 .", "start-test-server": "npm run qswitch-server; rm -rf ./data-test; cross-env TRILIUM_SAFE_MODE=1 TRILIUM_DATA_DIR=./data-test TRILIUM_SYNC_SERVER_HOST=http://tsyncserver:4000 TRILIUM_ENV=dev TRILIUM_PORT=9999 ts-node src/www.ts",