Selaa lähdekoodia

Улучшение createWebApp

Book Pauk 2 vuotta sitten
vanhempi
commit
e14c8823d2
1 muutettua tiedostoa jossa 24 lisäystä ja 3 poistoa
  1. 24 3
      server/createWebApp.js

+ 24 - 3
server/createWebApp.js

@@ -4,20 +4,41 @@ const webApp = require('../dist/public.json');
 const ZipReader = require('./core/ZipReader');
 
 module.exports = async(config) => {
+    const verFile = `${config.publicDir}/version.txt`;
     const zipFile = `${config.tempDir}/public.zip`;
 
-    await fs.writeFile(zipFile, webApp.data, {encoding: 'base64'});
+    if (await fs.pathExists(verFile)) {
+        const curPublicVersion = await fs.readFile(verFile, 'utf8');
+        if (curPublicVersion == config.version)
+            return;
+    }
 
-    const zipReader = new ZipReader();
-    await zipReader.open(zipFile);
+    //сохраним files
+    const filesDir = `${config.publicDir}/files`;
+    let tmpFilesDir = '';
+    if (await fs.pathExists(filesDir)) {
+        tmpFilesDir = `${config.dataDir}/files`;
+        if (!await fs.pathExists(tmpFilesDir))
+            await fs.move(filesDir, tmpFilesDir);
+    }
 
     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();
     }
 
+    //восстановим files
+    if (tmpFilesDir)
+        await fs.move(tmpFilesDir, filesDir);
+
+    await fs.writeFile(verFile, config.version);
     await fs.remove(zipFile);
 };