Skip to content

Commit

Permalink
Merge pull request #267 from hypermodules/sentry
Browse files Browse the repository at this point in the history
Add sentry
  • Loading branch information
bcomnes authored Nov 12, 2017
2 parents 5a3e5b3 + cf62498 commit d10ea43
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 4 deletions.
12 changes: 9 additions & 3 deletions main/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
var isDev = require('electron-is-dev')
if (!isDev) {
require('../sentry')('main')
}
var { app, ipcMain } = require('electron')
var Config = require('electron-store')
var get = require('lodash.get')
Expand Down Expand Up @@ -235,9 +239,11 @@ app.on('ready', function appReady () {
})
}

setTimeout(() => {
autoUpdater.checkForUpdatesAndNotify()
}, 500)
if (!process.env.DEV_SERVER) {
setTimeout(() => {
autoUpdater.checkForUpdatesAndNotify()
}, 500)
}

autoUpdater.on('error', (err) => {
console.log(err)
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@
"nanologger": "^1.3.0",
"nanotick": "^1.1.6",
"pump": "^1.0.2",
"raven": "^2.2.1",
"raven-js": "^3.19.1",
"run-parallel": "^1.1.6",
"through2-filter": "^2.0.0",
"xtend": "^4.0.1"
Expand Down
6 changes: 5 additions & 1 deletion renderer/audio.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
<h1>🎵</h1>
<audio id="audio"></audio>
<audio id="needle"></audio>
<script>require('./audio/index.js')</script>
<script>
var isDev = require('electron-is-dev')
if (!isDev) require('../sentry.js')('audio')
require('./audio/index.js')
</script>
</body>
</html>
1 change: 1 addition & 0 deletions renderer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<main id="app"></main>
<script>
var isDev = require('electron-is-dev')
if (!isDev) window.raven = require('../sentry.js')('player')
if (isDev || process.env.DEV_SERVER) {
var bundle = document.createElement('script')
bundle.src = 'http://localhost:9966/bundle.js'
Expand Down
62 changes: 62 additions & 0 deletions sentry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
// modeled after https://github.com/codeforscience/sciencefair/blob/444bb75e0c73cc1e632ec833b98ba2d693668cde/app/client/lib/raven.js#L41
var os = require('os')

var RAVEN_A = '3e06dec4e996422080e1853bdb663246' // eh.. can we get these out of source code?
var RAVEN_B = '7e4004b4423044b3b19d2f4523748552'
var RAVEN_C = '243594'

var MAIN_THREAD = 'browser'
var RENDERER = 'renderer'

function getopts (processtype, name) {
return {
captureUnhandledRejections: true,
name: name || 'Hyperamp',
release: require('./package.json').version,
extra: {
platform: os.platform(),
process: processtype,
release: os.release(),
arch: os.arch(),
totalmem: os.totalmem()
},
sendTimeout: 5,
allowSecretKey: processtype === 'browser',
debug: true
}
}

function setup (name) {
// process.type === 'browser' : main thread
// process.type === 'renderer' : electron window
var raven = process.type === MAIN_THREAD ? require('raven') : require('raven-js')
var url = process.type === MAIN_THREAD ? `https://${RAVEN_A}:${RAVEN_B}@sentry.io/${RAVEN_C}` : `https://${RAVEN_A}@sentry.io/${RAVEN_C}`

if (process.type === MAIN_THREAD) {
// Main thread stuff only
process.on('uncaughtException', (err) => {
const dialog = require('electron').dialog

dialog.showMessageBox({
title: 'An error occurred',
message: `Sorry for the trouble, but an error has occurred in Hyperamp and we don't know how to recover from it.
If you are connected to the internet, this has been reported anonymously to the project maintainers - they will work on a fix.
The app may now quit - you can safely reopen it.`,
detail: err.stack,
buttons: ['OK']
})
})
}

if (process.type === RENDERER) {
// Renderer stuff only
}

var sentry = raven.config(url, getopts(process.type), name).install()
console.log('Sentry installed')
return sentry
}

module.exports = setup

0 comments on commit d10ea43

Please sign in to comment.