Merge pull request #16 from bbenoist/feature/ssh-bootstrap

Add an option to execute additional commands before GDB when using SSH
This commit is contained in:
Jan 2016-02-10 22:01:26 +01:00
commit 517870e1b8
4 changed files with 15 additions and 2 deletions

View file

@ -84,7 +84,9 @@ request.
"password": "password123",
"user": "remoteUser",
"x11host": "localhost",
"x11port": 6000
"x11port": 6000,
// Optional, content will be executed on the SSH host before the debugger call.
"bootstrap": "source /home/remoteUser/some-env"
}
```
@ -95,4 +97,8 @@ For X11 forwarding to work you first need to enable it in your Display Manager a
connections. To allow connections you can either add an entry for applications or run `xhost +`
in the console while you are debugging and turn it off again when you are done using `xhost -`.
Because some builds requires one or more environment files to be sourced before running any
command, you can use the `ssh.bootstrap` option to add some extra commands which will be prepended
to the debugger call (using `&&` to join both).
## [Issues](https://github.com/WebFreak001/code-debug)

View file

@ -111,6 +111,10 @@
"type": "number",
"description": "Screen to start the application on the remote side",
"default": 0
},
"bootstrap": {
"type": "string",
"description": "Content will be executed on the SSH host before the debugger call."
}
}
}

View file

@ -24,6 +24,7 @@ export interface SSHArguments {
remotex11screen: number;
x11port: number;
x11host: string;
bootstrap: string;
}
export interface IBackend {

View file

@ -93,7 +93,9 @@ export class MI2 extends EventEmitter implements IBackend {
screen: args.remotex11screen
};
}
this.sshConn.exec(this.application + " " + this.preargs.join(" "), execArgs, (err, stream) => {
let sshCMD = this.application + " " + this.preargs.join(" ");
if (args.bootstrap) sshCMD = args.bootstrap + " && " + sshCMD;
this.sshConn.exec(sshCMD, execArgs, (err, stream) => {
if (err) {
this.log("stderr", "Could not run " + this.application + " over ssh!");
this.log("stderr", err.toString());