| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | const path = require("path"); | 
					
						
							|  |  |  | const fs = require("fs-extra"); | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-11 06:57:34 +03:00
										 |  |  | const APP_NAME = "TriliumNext Notes"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-08 21:27:48 +02:00
										 |  |  | module.exports = { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     packagerConfig: { | 
					
						
							|  |  |  |         executableName: "trilium", | 
					
						
							|  |  |  |         name: APP_NAME, | 
					
						
							|  |  |  |         overwrite: true, | 
					
						
							|  |  |  |         asar: true, | 
					
						
							|  |  |  |         icon: "./images/app-icons/icon", | 
					
						
							|  |  |  |         extraResource: [ | 
					
						
							|  |  |  |             // Moved to root
 | 
					
						
							|  |  |  |             ...getExtraResourcesForPlatform(), | 
					
						
							| 
									
										
										
										
											2024-10-13 14:24:46 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |             // Moved to resources (TriliumNext Notes.app/Contents/Resources on macOS)
 | 
					
						
							|  |  |  |             "translations/", | 
					
						
							|  |  |  |             "node_modules/@highlightjs/cdn-assets/styles" | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |         afterComplete: [ | 
					
						
							|  |  |  |             (buildPath, _electronVersion, platform, _arch, callback) => { | 
					
						
							|  |  |  |                 const extraResources = getExtraResourcesForPlatform(); | 
					
						
							|  |  |  |                 for (const resource of extraResources) { | 
					
						
							|  |  |  |                     const baseName = path.basename(resource); | 
					
						
							|  |  |  |                     let sourcePath; | 
					
						
							|  |  |  |                     if (platform === "darwin") { | 
					
						
							|  |  |  |                         sourcePath = path.join(buildPath, `${APP_NAME}.app`, "Contents", "Resources", baseName); | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         sourcePath = path.join(buildPath, "resources", baseName); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     let destPath; | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |                     if (baseName !== "256x256.png") { | 
					
						
							|  |  |  |                         destPath = path.join(buildPath, baseName); | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         destPath = path.join(buildPath, "icon.png"); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     // Copy files from resources folder to root
 | 
					
						
							|  |  |  |                     fs.move(sourcePath, destPath) | 
					
						
							|  |  |  |                         .then(() => callback()) | 
					
						
							|  |  |  |                         .catch((err) => callback(err)); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ] | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     rebuildConfig: { | 
					
						
							|  |  |  |         force: true | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     makers: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-deb", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							|  |  |  |                     icon: "./images/app-icons/png/128x128.png", | 
					
						
							|  |  |  |                     desktopTemplate: path.resolve("./bin/electron-forge/desktop.ejs") | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-squirrel", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", | 
					
						
							| 
									
										
										
										
											2025-02-01 14:36:55 +02:00
										 |  |  |                 setupIcon: "./images/app-icons/win/setup.ico", | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |                 loadingGif: "./images/app-icons/win/setup-banner.gif" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-dmg", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 icon: "./images/app-icons/icon.icns" | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/maker-zip", | 
					
						
							|  |  |  |             config: { | 
					
						
							|  |  |  |                 options: { | 
					
						
							|  |  |  |                     iconUrl: "https://raw.githubusercontent.com/TriliumNext/Notes/develop/images/app-icons/icon.ico", | 
					
						
							|  |  |  |                     icon: "./images/app-icons/icon.ico" | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     ], | 
					
						
							|  |  |  |     plugins: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             name: "@electron-forge/plugin-auto-unpack-natives", | 
					
						
							|  |  |  |             config: {} | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2023-11-08 21:27:48 +02:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | function getExtraResourcesForPlatform() { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     let resources = ["dump-db/", "./bin/tpl/anonymize-database.sql"]; | 
					
						
							|  |  |  |     const scripts = ["trilium-portable", "trilium-safe-mode", "trilium-no-cert-check"]; | 
					
						
							|  |  |  |     switch (process.platform) { | 
					
						
							|  |  |  |         case "win32": | 
					
						
							|  |  |  |             for (const script of scripts) { | 
					
						
							|  |  |  |                 resources.push(`./bin/tpl/${script}.bat`); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |         case "darwin": | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |         case "linux": | 
					
						
							|  |  |  |             resources.push("images/app-icons/png/256x256.png"); | 
					
						
							|  |  |  |             for (const script of scripts) { | 
					
						
							|  |  |  |                 resources.push(`./bin/tpl/${script}.sh`); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |         default: | 
					
						
							|  |  |  |             break; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-08-05 18:47:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     return resources; | 
					
						
							|  |  |  | } |