|
@@ -73,9 +73,11 @@ namespace fisp
|
|
|
|
|
|
if (IsEmbedded)
|
|
|
{
|
|
|
- await UnzipGoogleFonts();
|
|
|
+ await UnzipGoogleFonts();
|
|
|
}
|
|
|
|
|
|
+ //await GenerateVersionFolder();
|
|
|
+
|
|
|
await Task.Delay(1000);
|
|
|
|
|
|
await UpdateMainDartJs();
|
|
@@ -108,9 +110,10 @@ namespace fisp
|
|
|
}
|
|
|
using (ZipArchive archive = ZipFile.Open(fileName, ZipArchiveMode.Create))
|
|
|
{
|
|
|
- var entryName = "index.html";
|
|
|
- var sourcePath = Path.Combine(DistFolder, entryName);
|
|
|
- archive.CreateEntryFromFile(sourcePath, entryName);
|
|
|
+ AddFileToZip(archive, Path.Combine(DistFolder, "index.html"));
|
|
|
+ AddFileToZip(archive, Path.Combine(DistFolder, "flutter_service_worker.js"));
|
|
|
+
|
|
|
+ AddFolderToZip(archive, Path.Combine(DistFolder, "assets"));
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -155,11 +158,6 @@ namespace fisp
|
|
|
.Replace("href=\"flyinsono.ico", $"href=\"{staticRoot}flyinsono.ico")
|
|
|
.Replace("window.STATIC_ROOT = './';", $"window.STATIC_ROOT = '{staticRoot}';");
|
|
|
|
|
|
- if (!IsEmbedded)
|
|
|
- {
|
|
|
- content = content.Replace("base href=\"/\"", $"base href=\"{staticRoot}\"");
|
|
|
- }
|
|
|
-
|
|
|
File.Delete(filePath);
|
|
|
|
|
|
using (var fs = new FileStream(filePath, FileMode.CreateNew, FileAccess.Write, FileShare.None))
|
|
@@ -169,6 +167,38 @@ namespace fisp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private async Task GenerateVersionFolder()
|
|
|
+ {
|
|
|
+ // TODO: 支持asset自定义root后,拷贝Version文件夹
|
|
|
+ await Task.Run(() =>
|
|
|
+ {
|
|
|
+ var versionFolder = Path.Combine(DistFolder, FullBuildName);
|
|
|
+ CreateCleanFolder(versionFolder);
|
|
|
+
|
|
|
+ if (IsEmbedded)
|
|
|
+ {
|
|
|
+ FillEmbeddedVersionFolder(versionFolder);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ FillPublicVersionFolder(versionFolder);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void FillEmbeddedVersionFolder(string folder)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void FillPublicVersionFolder(string folder)
|
|
|
+ {
|
|
|
+ var assetsFoloder = Path.Combine(DistFolder, "assets");
|
|
|
+ var assetsDistFolder = Path.Combine(folder, "assets");
|
|
|
+ CreateCleanFolder(assetsDistFolder);
|
|
|
+ CopyDirectory(assetsFoloder, assetsDistFolder);
|
|
|
+ }
|
|
|
+
|
|
|
private async Task UnzipGoogleFonts()
|
|
|
{
|
|
|
await Task.Run(() =>
|
|
@@ -186,7 +216,32 @@ namespace fisp
|
|
|
_versionModel = JsonSerializer.Deserialize<FlutterVersionModel>(jsonText);
|
|
|
}
|
|
|
|
|
|
- private static void CreateCleanFolder(string folder)
|
|
|
+ private static void AddFolderToZip(ZipArchive archive, string folder, string? rootFolder = null)
|
|
|
+ {
|
|
|
+ var root = rootFolder ?? Path.GetDirectoryName(folder);
|
|
|
+ var subStrIndex = root.Length + 1;
|
|
|
+ DirectoryInfo d = new DirectoryInfo(folder);
|
|
|
+ FileInfo[] files = d.GetFiles("*");
|
|
|
+ foreach (FileInfo file in files)
|
|
|
+ {
|
|
|
+ var targetFolder = file.FullName.Substring(subStrIndex);
|
|
|
+ archive.CreateEntryFromFile(file.FullName, targetFolder);
|
|
|
+ }
|
|
|
+
|
|
|
+ DirectoryInfo[] directories = d.GetDirectories();
|
|
|
+ foreach (DirectoryInfo directory in directories)
|
|
|
+ {
|
|
|
+ AddFolderToZip(archive, directory.FullName, root);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void AddFileToZip(ZipArchive archive, string path)
|
|
|
+ {
|
|
|
+ var entryName = Path.GetFileName(path);
|
|
|
+ archive.CreateEntryFromFile(path, entryName);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void CreateCleanFolder(string folder)
|
|
|
{
|
|
|
if (Directory.Exists(folder))
|
|
|
{
|
|
@@ -210,7 +265,7 @@ namespace fisp
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private static void CopyDirectory(string sourceDirectory, string targetDirectory)
|
|
|
+ public static void CopyDirectory(string sourceDirectory, string targetDirectory)
|
|
|
{
|
|
|
// 创建目标文件夹
|
|
|
Directory.CreateDirectory(targetDirectory);
|
|
@@ -232,6 +287,10 @@ namespace fisp
|
|
|
// 递归拷贝子文件夹
|
|
|
foreach (string directory in directories)
|
|
|
{
|
|
|
+ if (directory.Equals(targetDirectory))
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
string directoryName = Path.GetFileName(directory);
|
|
|
string targetSubDirectory = Path.Combine(targetDirectory, directoryName);
|
|
|
CopyDirectory(directory, targetSubDirectory);
|