- 'use strict';
- import { Disposable, Terminal, window } from 'vscode';
- import { Container } from './container';
-
- let _terminal: Terminal | undefined;
- let _terminalCwd: string | undefined;
- let _disposable: Disposable | undefined;
-
- const extensionTerminalName = 'GitLens';
-
- function ensureTerminal(cwd: string): Terminal {
- if (_terminal === undefined) {
- _terminal = window.createTerminal(extensionTerminalName);
- _disposable = window.onDidCloseTerminal((e: Terminal) => {
- if (e.name === extensionTerminalName) {
- _terminal = undefined;
- _disposable!.dispose();
- _disposable = undefined;
- }
- });
-
- Container.context.subscriptions.push(_disposable);
- _terminalCwd = undefined;
- }
-
- if (_terminalCwd !== cwd) {
- _terminal.sendText(`cd "${cwd}"`, true);
- _terminalCwd = cwd;
- }
-
- return _terminal;
- }
-
- export function runGitCommandInTerminal(command: string, args: string, cwd: string, execute: boolean = false) {
- // let git = Git.getGitPath();
- // if (git.includes(' ')) {
- // git = `"${git}"`;
- // }
-
- const terminal = ensureTerminal(cwd);
- terminal.show(false);
- terminal.sendText(`git ${command} ${args}`, execute);
- }
|