fix: daemon not killed when migrating app architecture (#1109)
Add an option to kill running daemon when it's incompatible with the app version.
This commit is contained in:
parent
98d7332399
commit
7f7f09c206
3 changed files with 26 additions and 9 deletions
|
@ -1,12 +1,10 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import { doQuit, doSkipWrongDaemonNotice } from 'redux/actions/app';
|
||||
import { doQuit, doQuitAnyDaemon } from 'redux/actions/app';
|
||||
import ModalIncompatibleDaemon from './view';
|
||||
|
||||
const select = state => ({});
|
||||
|
||||
const perform = dispatch => ({
|
||||
quit: () => dispatch(doQuit()),
|
||||
quitAnyDaemon: () => dispatch(doQuitAnyDaemon()),
|
||||
});
|
||||
|
||||
export default connect(select, perform)(ModalIncompatibleDaemon);
|
||||
export default connect(null, perform)(ModalIncompatibleDaemon);
|
||||
|
|
|
@ -4,15 +4,17 @@ import Link from 'component/link/index';
|
|||
|
||||
class ModalIncompatibleDaemon extends React.PureComponent {
|
||||
render() {
|
||||
const { quit } = this.props;
|
||||
const { quit, quitAnyDaemon } = this.props;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isOpen
|
||||
contentLabel={__('Incompatible daemon running')}
|
||||
type="alert"
|
||||
confirmButtonLabel={__('Quit')}
|
||||
onConfirmed={quit}
|
||||
type="confirm"
|
||||
confirmButtonLabel={__('Quit daemon')}
|
||||
abortButtonLabel={__('Do nothing')}
|
||||
onConfirmed={quitAnyDaemon}
|
||||
onAborted={quit}
|
||||
>
|
||||
{__(
|
||||
'This browser is running with an incompatible version of the LBRY protocol and your install must be repaired. '
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import { execSync } from 'child_process';
|
||||
import isDev from 'electron-is-dev';
|
||||
import Lbry from 'lbry';
|
||||
import path from 'path';
|
||||
|
@ -329,6 +330,22 @@ export function doQuit() {
|
|||
};
|
||||
}
|
||||
|
||||
export function doQuitAnyDaemon() {
|
||||
return dispatch => {
|
||||
try {
|
||||
if (process.platform === 'win32') {
|
||||
execSync('taskkill /im lbrynet-daemon.exe /t /f');
|
||||
} else {
|
||||
execSync('pkill lbrynet-daemon');
|
||||
}
|
||||
} catch (error) {
|
||||
dispatch(doAlertError(`Quitting daemon failed due to: ${error.message}`));
|
||||
} finally {
|
||||
dispatch(doQuit());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function doChangeVolume(volume) {
|
||||
return dispatch => {
|
||||
dispatch({
|
||||
|
|
Loading…
Reference in a new issue