diff --git a/server/createWebApp.js b/server/createWebApp.js new file mode 100644 index 00000000..c30fbcda --- /dev/null +++ b/server/createWebApp.js @@ -0,0 +1,31 @@ +const fs = require('fs-extra'); + +const webApp = require('../dist/public.json'); +const ZipReader = require('./core/Zip/ZipReader'); + +module.exports = async(config) => { + const verFile = `${config.publicDir}/version.txt`; + const zipFile = `${config.tempDir}/public.zip`; + + if (await fs.pathExists(verFile)) { + const curPublicVersion = await fs.readFile(verFile, 'utf8'); + if (curPublicVersion == config.version + config.rootPathStatic) + return; + } + + await fs.remove(config.publicDir); + + //извлекаем новый webApp + await fs.writeFile(zipFile, webApp.data, {encoding: 'base64'}); + const zipReader = new ZipReader(); + await zipReader.open(zipFile); + + try { + await zipReader.extractAllToDir(config.publicDir); + } finally { + await zipReader.close(); + } + + await fs.writeFile(verFile, config.version + config.rootPathStatic); + await fs.remove(zipFile); +}; \ No newline at end of file diff --git a/server/index.js b/server/index.js index 84a00850..2bc41cdb 100644 --- a/server/index.js +++ b/server/index.js @@ -55,6 +55,8 @@ async function init() { config.tempPublicDir = `${config.publicFilesDir}/tmp`; config.uploadPublicDir = `${config.publicFilesDir}/upload`; + config.rootPathStatic = ''; + configManager.config = config;///!!! await fs.ensureDir(config.dataDir); @@ -85,8 +87,8 @@ async function init() { //web app if (branch !== 'development') { - //const createWebApp = require('./createWebApp'); - //await createWebApp(config); + const createWebApp = require('./createWebApp'); + await createWebApp(config); } }