|
@@ -70,8 +70,30 @@ function isInstalled () {
|
|
|
|
|
|
// unzips and makes path.txt point at the correct executable
|
|
|
function extractFile (zipPath) {
|
|
|
- return extract(zipPath, { dir: path.join(__dirname, 'dist') })
|
|
|
- .then(() => fs.promises.writeFile(path.join(__dirname, 'path.txt'), platformPath));
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const distPath = process.env.ELECTRON_OVERRIDE_DIST_PATH || path.join(__dirname, 'dist');
|
|
|
+
|
|
|
+ extract(zipPath, { dir: path.join(__dirname, 'dist') })
|
|
|
+ .then(() => {
|
|
|
+ // If the zip contains an "electron.d.ts" file,
|
|
|
+ // move that up
|
|
|
+ const srcTypeDefPath = path.join(distPath, 'electron.d.ts');
|
|
|
+ const targetTypeDefPath = path.join(__dirname, 'electron.d.ts');
|
|
|
+ const hasTypeDefinitions = fs.existsSync(srcTypeDefPath);
|
|
|
+
|
|
|
+ if (hasTypeDefinitions) {
|
|
|
+ try {
|
|
|
+ fs.renameSync(srcTypeDefPath, targetTypeDefPath);
|
|
|
+ } catch (err) {
|
|
|
+ reject(err);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // Write a "path.txt" file.
|
|
|
+ return fs.promises.writeFile(path.join(__dirname, 'path.txt'), platformPath);
|
|
|
+ })
|
|
|
+ .catch((err) => reject(err));
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
function getPlatformPath () {
|