diff --git a/src/js/index/plugin_init.js b/src/js/index/plugin_init.js new file mode 100644 index 00000000..a48fb3b5 --- /dev/null +++ b/src/js/index/plugin_init.js @@ -0,0 +1,34 @@ +const fs = require('fs-extra'); +const path = require('path'); +const { app } = require('@electron/remote'); + +async function copyMissingTremFiles() { + try { + const defaultPluginsPath = path.join(__dirname, '../../resource/plugins'); + const userPluginsPath = path.join(app.getPath('userData'), 'plugins'); + + await fs.ensureDir(userPluginsPath); + + const defaultTremFiles = (await fs.readdir(defaultPluginsPath)) + .filter((file) => file.endsWith('.trem')); + const userTremFiles = (await fs.readdir(userPluginsPath)) + .filter((file) => file.endsWith('.trem')); + + const missingFiles = defaultTremFiles.filter((file) => !userTremFiles.includes(file)); + + for (const file of missingFiles) { + const srcFile = path.join(defaultPluginsPath, file); + const destFile = path.join(userPluginsPath, file); + await fs.copy(srcFile, destFile); + console.log(`Copied ${file} to user plugins directory`); + } + + return missingFiles; + } + catch (error) { + console.error('Error copying trem files:', error); + throw error; + } +} + +module.exports = copyMissingTremFiles; diff --git a/src/js/index/require.js b/src/js/index/require.js index 34a21687..468a07d6 100644 --- a/src/js/index/require.js +++ b/src/js/index/require.js @@ -11,24 +11,30 @@ const logger = require('../js/core/utils/logger'); logger.info('App start'); -// require('../js/core/config'); -require('../js/core/plugin')('index'); - -require('../js/index/nav'); -require('../js/index/lang'); -require('../js/index/event'); -require('../js/index/map'); -require('../js/index/data/data'); - -require('../js/index/core/resource'); -require('../js/index/core/tts'); -require('../js/index/core/rts'); -require('../js/index/core/eew'); -require('../js/index/core/loop'); -require('../js/index/core/estimate'); -require('../js/index/core/audio'); -require('../js/index/core/focus'); -require('../js/index/core/report'); -require('../js/index/core/intensity'); -require('../js/index/core/lpgm'); -require('../js/index/core/window'); +const copyMissingTremFiles = require('../js/index/plugin_init'); + +(async () => { + await copyMissingTremFiles(); + + // require('../js/core/config'); + require('../js/core/plugin')('index'); + + require('../js/index/nav'); + require('../js/index/lang'); + require('../js/index/event'); + require('../js/index/map'); + require('../js/index/data/data'); + + require('../js/index/core/resource'); + require('../js/index/core/tts'); + require('../js/index/core/rts'); + require('../js/index/core/eew'); + require('../js/index/core/loop'); + require('../js/index/core/estimate'); + require('../js/index/core/audio'); + require('../js/index/core/focus'); + require('../js/index/core/report'); + require('../js/index/core/intensity'); + require('../js/index/core/lpgm'); + require('../js/index/core/window'); +})(); diff --git a/src/resource/plugins/setting.trem b/src/resource/plugins/setting.trem new file mode 100644 index 00000000..8ee89f87 Binary files /dev/null and b/src/resource/plugins/setting.trem differ