Commit 67c3a8b4 authored by Ivan Mazhukin's avatar Ivan Mazhukin

add local epm remove action

parent 7fa27d27
......@@ -66,6 +66,7 @@ code --install-extension epm-docker-test-runner-0.1.0.vsix --force
- `Run exec command`: спрашивает shell-команду и целевые системы или пресет.
- `./bin/epm play <app>`: запускает локальный `epm play` вне Docker.
- `./bin/epm play --latest <app>`: запускает локальный `epm play --latest` вне Docker.
- `./bin/epm remove <app>`: удаляет локально проверенные пакеты через `epm remove` вне Docker.
- `Rerun last command`: повторяет последнюю сгенерированную команду.
- `Open log folder`: открывает каталог логов.
- `Configure`: открывает настройки расширения.
......
......@@ -44,6 +44,7 @@ function activate(context) {
vscode.commands.registerCommand('epmDockerTest.runExec', runExec),
vscode.commands.registerCommand('epmDockerTest.runLocalPlay', () => runLocalPlay(false)),
vscode.commands.registerCommand('epmDockerTest.runLocalPlayLatest', () => runLocalPlay(true)),
vscode.commands.registerCommand('epmDockerTest.runLocalRemove', runLocalRemove),
vscode.commands.registerCommand('epmDockerTest.rerunLast', rerunLast),
vscode.commands.registerCommand('epmDockerTest.openLogs', openLogs),
vscode.commands.registerCommand('epmDockerTest.refresh', () => provider.refresh()),
......@@ -106,6 +107,7 @@ class ActionsProvider {
separatorItem('Local EPM'),
commandItem('./bin/epm play <app>', 'epmDockerTest.runLocalPlay', undefined, new vscode.ThemeIcon('play')),
commandItem('./bin/epm play --latest <app>', 'epmDockerTest.runLocalPlayLatest', undefined, new vscode.ThemeIcon('cloud-download')),
commandItem('./bin/epm remove <app>', 'epmDockerTest.runLocalRemove', undefined, new vscode.ThemeIcon('trash')),
separatorItem('Tools'),
commandItem('Rerun last command', 'epmDockerTest.rerunLast', undefined, new vscode.ThemeIcon('debug-restart')),
commandItem('Open log folder', 'epmDockerTest.openLogs', undefined, new vscode.ThemeIcon('folder-opened')),
......@@ -152,6 +154,7 @@ async function runQuick() {
{ label: '$(terminal) Run exec command', command: 'epmDockerTest.runExec' },
{ label: '$(play) Local ./bin/epm play', command: 'epmDockerTest.runLocalPlay' },
{ label: '$(cloud-download) Local ./bin/epm play --latest', command: 'epmDockerTest.runLocalPlayLatest' },
{ label: '$(trash) Local ./bin/epm remove', command: 'epmDockerTest.runLocalRemove' },
{ label: '$(debug-restart) Rerun last command', command: 'epmDockerTest.rerunLast' },
{ label: '$(folder-opened) Open log folder', command: 'epmDockerTest.openLogs' }
], {
......@@ -351,6 +354,42 @@ async function runLocalPlay(latest) {
sendToTerminal(command);
}
async function runLocalRemove() {
const eepmRoot = resolveWorkspacePath(getConfig().get('localEpmRoot', '/home/vano/eter/static2/eepm'));
const epm = path.join(eepmRoot, 'bin', 'epm');
if (!fs.existsSync(epm)) {
vscode.window.showErrorMessage(`Could not find local epm: ${epm}`);
return;
}
const inferred = inferAppFromActiveEditor(eepmRoot);
const app = await promptForApp({
title: 'Local epm remove',
prompt: 'Application name for local ./bin/epm remove',
fallbackKey: 'lastLocalApp',
inferred
});
if (!app) {
return;
}
const command = [
'cd',
shellQuote(eepmRoot),
'&&',
'./bin/epm',
'remove',
shellQuote(app)
].join(' ');
await setWorkspaceState('lastLocalApp', app);
lastRun = command;
await setWorkspaceState('lastCommand', command);
sendToTerminal(command);
}
async function promptForApp(options) {
const inferred = options.inferred || inferAppFromActiveEditor(resolveWorkspacePath(getConfig().get('localEpmRoot', '/home/vano/eter/static2/eepm')));
const fallback = getWorkspaceState(options.fallbackKey, getWorkspaceState('lastApp', ''));
......
......@@ -20,7 +20,8 @@
"onCommand:epmDockerTest.runExec",
"onCommand:epmDockerTest.rerunLast",
"onCommand:epmDockerTest.runLocalPlay",
"onCommand:epmDockerTest.runLocalPlayLatest"
"onCommand:epmDockerTest.runLocalPlayLatest",
"onCommand:epmDockerTest.runLocalRemove"
],
"main": "./extension.js",
"contributes": {
......@@ -54,6 +55,10 @@
"title": "EPM Docker Test: Local epm play --latest"
},
{
"command": "epmDockerTest.runLocalRemove",
"title": "EPM Docker Test: Local epm remove"
},
{
"command": "epmDockerTest.rerunLast",
"title": "EPM Docker Test: Rerun Last Command"
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment