|
@@ -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);
|
|
|
+};
|