Browse Source

Fix: sentry will use userData before redirect it, ahead of the time

Cyril Taylor 5 years ago
parent
commit
1027fbfb60
3 changed files with 37 additions and 31 deletions
  1. 1 10
      app/lib/index.ts
  2. 15 0
      app/lib/portable.ts
  3. 21 21
      app/lib/sentry.ts

+ 1 - 10
app/lib/index.ts

@@ -1,11 +1,10 @@
+import './portable'
 import './sentry'
 import './lru'
 import { app, ipcMain, Menu } from 'electron'
 import { parseArgs } from './cli'
 import { Application } from './app'
 import electronDebug = require('electron-debug')
-import * as path from 'path'
-import * as fs from 'fs'
 
 if (!process.env.TERMINUS_PLUGINS) {
     process.env.TERMINUS_PLUGINS = ''
@@ -13,14 +12,6 @@ if (!process.env.TERMINUS_PLUGINS) {
 
 const application = new Application()
 
-if (process.env.PORTABLE_EXECUTABLE_DIR) {
-    const portableData = path.join(process.env.PORTABLE_EXECUTABLE_DIR, 'terminus-data')
-    if (!fs.existsSync(portableData)) {
-        fs.mkdirSync(portableData)
-    }
-    app.setPath('userData', portableData)
-}
-
 ipcMain.on('app:new-window', () => {
     application.newWindow()
 })

+ 15 - 0
app/lib/portable.ts

@@ -0,0 +1,15 @@
+import * as path from 'path'
+import * as fs from 'fs'
+
+if (process.env.PORTABLE_EXECUTABLE_DIR) {
+    const portableData = path.join(process.env.PORTABLE_EXECUTABLE_DIR, 'terminus-data')
+    if (!fs.existsSync(portableData)) {
+        fs.mkdirSync(portableData)
+    }
+
+    try {
+        require('electron').app.setPath('userData', portableData)
+    } catch {
+        require('electron').remote.app.setPath('userData', portableData)
+    }
+}

+ 21 - 21
app/lib/sentry.ts

@@ -1,21 +1,21 @@
-const { init } = process.type === 'main' ? require('@sentry/electron/dist/main') : require('@sentry/electron/dist/renderer')
-import * as isDev from 'electron-is-dev'
-
-
-const SENTRY_DSN = 'https://[email protected]/181876'
-let release
-try {
-    release = require('electron').app.getVersion()
-} catch {
-    release = require('electron').remote.app.getVersion()
-}
-
-if (!isDev) {
-    init({
-        dsn: SENTRY_DSN,
-        release,
-        integrations (integrations) {
-            return integrations.filter(integration => integration.name !== 'Breadcrumbs')
-        },
-    })
-}
+const { init } = process.type === 'main' ? require('@sentry/electron/dist/main') : require('@sentry/electron/dist/renderer')
+import * as isDev from 'electron-is-dev'
+
+
+const SENTRY_DSN = 'https://[email protected]/181876'
+let release
+try {
+    release = require('electron').app.getVersion()
+} catch {
+    release = require('electron').remote.app.getVersion()
+}
+
+if (!isDev) {
+    init({
+        dsn: SENTRY_DSN,
+        release,
+        integrations (integrations) {
+            return integrations.filter(integration => integration.name !== 'Breadcrumbs')
+        },
+    })
+}