Add ssh url scheme handling (#2516)
This commit is contained in:
parent
887fb5ac1a
commit
0105d6baf2
9 changed files with 153 additions and 2 deletions
|
|
@ -20,11 +20,13 @@ import {
|
|||
UI_WINDOW_GEOMETRY_CHANGED,
|
||||
UI_WINDOW_MOVE,
|
||||
UI_OPEN_FILE,
|
||||
UI_OPEN_SSH_URL,
|
||||
UI_CONTEXTMENU_OPEN,
|
||||
UI_COMMAND_EXEC
|
||||
} from '../constants/ui';
|
||||
|
||||
import {setActiveGroup} from './term-groups';
|
||||
import parseUrl from 'parse-url';
|
||||
|
||||
const {stat} = window.require('fs');
|
||||
|
||||
|
|
@ -279,6 +281,30 @@ export function openFile(path) {
|
|||
};
|
||||
}
|
||||
|
||||
export function openSSH(url) {
|
||||
return dispatch => {
|
||||
dispatch({
|
||||
type: UI_OPEN_SSH_URL,
|
||||
effect() {
|
||||
let parsedUrl = parseUrl(url, true);
|
||||
let command = parsedUrl.protocol + ' ' + (parsedUrl.user || '') + '@' + parsedUrl.resource;
|
||||
|
||||
if (parsedUrl.port) command += ' -p ' + parsedUrl.port;
|
||||
|
||||
command += '\n';
|
||||
|
||||
rpc.once('session add', ({uid}) => {
|
||||
rpc.once('session data', () => {
|
||||
dispatch(sendSessionData(uid, command));
|
||||
});
|
||||
});
|
||||
|
||||
dispatch(requestSession());
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function execCommand(command, fn, e) {
|
||||
return dispatch =>
|
||||
dispatch({
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ export const UI_WINDOW_MAXIMIZE = 'UI_WINDOW_MAXIMIZE';
|
|||
export const UI_WINDOW_UNMAXIMIZE = 'UI_WINDOW_UNMAXIMIZE';
|
||||
export const UI_WINDOW_GEOMETRY_CHANGED = 'UI_WINDOW_GEOMETRY_CHANGED';
|
||||
export const UI_OPEN_FILE = 'UI_OPEN_FILE';
|
||||
export const UI_OPEN_SSH_URL = 'UI_OPEN_SSH_URL';
|
||||
export const UI_OPEN_HAMBURGER_MENU = 'UI_OPEN_HAMBURGER_MENU';
|
||||
export const UI_WINDOW_MINIMIZE = 'UI_WINDOW_MINIMIZE';
|
||||
export const UI_WINDOW_CLOSE = 'UI_WINDOW_CLOSE';
|
||||
|
|
|
|||
|
|
@ -151,6 +151,10 @@ rpc.on('open file', ({path}) => {
|
|||
store_.dispatch(uiActions.openFile(path));
|
||||
});
|
||||
|
||||
rpc.on('open ssh', url => {
|
||||
store_.dispatch(uiActions.openSSH(url));
|
||||
});
|
||||
|
||||
rpc.on('update available', ({releaseName, releaseNotes, releaseUrl, canInstall}) => {
|
||||
store_.dispatch(updaterActions.updateAvailable(releaseName, releaseNotes, releaseUrl, canInstall));
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue