Browse Source

add electron helper

Gitea 3 years ago
parent
commit
9149c34d27
2 changed files with 46 additions and 2 deletions
  1. 2 2
      .github/workflows/electron.yml
  2. 44 0
      client/electron-helper.js

+ 2 - 2
.github/workflows/electron.yml

@@ -1,4 +1,4 @@
-name: Build/release
+name: Build electron app
 
 
 on:
 on:
   release:
   release:
@@ -26,7 +26,7 @@ jobs:
           cd client
           cd client
           yarn
           yarn
           yarn build
           yarn build
-          cp -r build ../express
+          node electron-helper.js
 
 
       - name: Build/release Electron app
       - name: Build/release Electron app
         uses: samuelmeuli/action-electron-builder@v1
         uses: samuelmeuli/action-electron-builder@v1

+ 44 - 0
client/electron-helper.js

@@ -0,0 +1,44 @@
+/**
+ * We need to build electron in windows , linux and macos.
+ * So copy folder we need to depend on node.
+ */
+var fs = require('fs');
+var path = require('path');
+
+function copyFileSync(source, target) {
+  var targetFile = target;
+
+  // If target is a directory, a new file with the same name will be created
+  if (fs.existsSync(target)) {
+    if (fs.lstatSync(target).isDirectory()) {
+      targetFile = path.join(target, path.basename(source));
+    }
+  }
+
+  fs.writeFileSync(targetFile, fs.readFileSync(source));
+}
+
+function copyFolderRecursiveSync(source, target) {
+  var files = [];
+
+  // Check if folder needs to be created or integrated
+  var targetFolder = path.join(target, path.basename(source));
+  if (!fs.existsSync(targetFolder)) {
+    fs.mkdirSync(targetFolder);
+  }
+
+  // Copy
+  if (fs.lstatSync(source).isDirectory()) {
+    files = fs.readdirSync(source);
+    files.forEach(function (file) {
+      var curSource = path.join(source, file);
+      if (fs.lstatSync(curSource).isDirectory()) {
+        copyFolderRecursiveSync(curSource, targetFolder);
+      } else {
+        copyFileSync(curSource, targetFolder);
+      }
+    });
+  }
+}
+
+copyFolderRecursiveSync('./build', '../express');