123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- const execa = require('execa');
- const superagent = require('superagent');
- const {
- inputCaptureSetWatcher,
- inputCaptureRegisterElement,
- } = require('./input_capture');
- const {
- wrapInputEventRegister,
- wrapInputEventUnregister,
- } = require('./input_event');
- module.exports = require('./discord_utils_'+process.platform+'.node');
- module.exports.clearCandidateGamesCallback = module.exports.setCandidateGamesCallback;
- inputCaptureSetWatcher(module.exports.inputWatchAll);
- delete module.exports.inputWatchAll;
- module.exports.inputCaptureRegisterElement = inputCaptureRegisterElement;
- module.exports.inputEventRegister = wrapInputEventRegister(module.exports.inputEventRegister);
- module.exports.inputEventUnregister = wrapInputEventUnregister(module.exports.inputEventUnregister);
- function parseNvidiaSmiOutput(result) {
- if (!result || !result.stdout) {
- return {error: 'nvidia-smi produced no output'};
- }
- const match = result.stdout.match(/Driver Version: (\d+)\.(\d+)/);
- if (match.length === 3) {
- return {major: parseInt(match[1], 10), minor: parseInt(match[2], 10)};
- } else {
- return {error: 'failed to parse nvidia-smi output'};
- }
- }
- module.exports.getGPUDriverVersions = async () => {
- if (process.platform !== 'win32') {
- return {};
- }
- const result = {};
- const nvidiaSmiPath = `${process.env['ProgramW6432']}/NVIDIA Corporation/NVSMI/nvidia-smi.exe`;
- try {
- result.nvidia = parseNvidiaSmiOutput(await execa(nvidiaSmiPath, []));
- } catch (e) {
- result.nvidia = {error: e.toString()};
- }
- return result;
- };
- module.exports.submitLiveCrashReport = async (channel, sentryMetadata) => {
- const path = module.exports._generateLiveMinidump();
- if (!path) {
- return null;
- }
- await superagent
- .post('https://sentry.io/api/146342/minidump/?sentry_key=f11e8c3e62cb46b5a006c339b2086ba3')
- .attach('upload_file_minidump', path)
- .field('channel', channel)
- .field('sentry', JSON.stringify(sentryMetadata));
- };
|