From ccea483f4f74b0b076a1b6874ede50d11ec6b149 Mon Sep 17 00:00:00 2001
From: David Baker <dave@matrix.org>
Date: Tue, 8 Nov 2016 11:20:47 +0000
Subject: [PATCH] Missed files electron windows fixes

Missed from https://github.com/vector-im/vector-web/pull/2551

 * squirrel hooks file for handling install / uninstall events
 * Install 'spinner' gif for windows (ours does not spin)
---
 electron/build/install-spinner.gif | Bin 0 -> 4460 bytes
 electron/src/squirrelhooks.js      |  30 +++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)
 create mode 100644 electron/build/install-spinner.gif
 create mode 100644 electron/src/squirrelhooks.js

diff --git a/electron/build/install-spinner.gif b/electron/build/install-spinner.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c4f832c34230af5d0267962c7e1d0fab4bab5dd0
GIT binary patch
literal 4460
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

literal 0
HcmV?d00001

diff --git a/electron/src/squirrelhooks.js b/electron/src/squirrelhooks.js
new file mode 100644
index 00000000..10fb8d9e
--- /dev/null
+++ b/electron/src/squirrelhooks.js
@@ -0,0 +1,30 @@
+const path = require('path');
+const spawn = require('child_process').spawn;
+const app = require('electron').app;
+
+function run_update_exe(args, done) {
+    const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
+    spawn(updateExe, args, {
+      detached: true
+    }).on('close', done);
+};
+
+function check_squirrel_hooks() {
+    if (process.platform != 'win32') return false;
+
+    const cmd = process.argv[1];
+    const target = path.basename(process.execPath);
+    if (cmd === '--squirrel-install' || cmd === '--squirrel-updated') {
+        run_update_exe(['--createShortcut=' + target + ''], app.quit);
+        return true;
+    } else if (cmd === '--squirrel-uninstall') {
+        run_update_exe(['--removeShortcut=' + target + ''], app.quit);
+        return true;
+    } else if (cmd === '--squirrel-obsolete') {
+        app.quit();
+        return true;
+    }
+    return false;
+}
+
+module.exports = check_squirrel_hooks;