diff --git a/plugins/deadlock-extension/package.json b/plugins/deadlock-extension/package.json index f6721455b1eaf925ebe25a88af91954ede176d98..f1cb963065420dffa081d713edefc2b7e9e2cc4c 100644 --- a/plugins/deadlock-extension/package.json +++ b/plugins/deadlock-extension/package.json @@ -12,7 +12,6 @@ "activationEvents": [ "onView:deadlockPanel", "onCommand:deadlock.openBriefing", - "onCommand:deadlock.openHelp", "onWebviewPanel:deadlockBriefing", "onWebviewPanel:deadlockHelp", "*" @@ -28,11 +27,6 @@ "command": "deadlock.openBriefing", "title": "Open Briefing", "category": "Deadlock Coding" - }, - { - "command": "deadlock.openHelp", - "title": "Open Help", - "category": "Deadlock Coding" } ], "viewsContainers": { diff --git a/plugins/deadlock-extension/src/command.ts b/plugins/deadlock-extension/src/command.ts index af556edee597113632fb553199af977cabc1adbf..87504e9f774b5b94857f86af2a1c1deec3d0fc83 100644 --- a/plugins/deadlock-extension/src/command.ts +++ b/plugins/deadlock-extension/src/command.ts @@ -1,3 +1,2 @@ -export const OPEN_BRIEFING_COMMAND = {title: 'Open Briefing', command: 'deadlock.openBriefing'}; -export const OPEN_HELP_COMMAND = {title: 'Open Help', command: 'deadlock.openHelp'}; \ No newline at end of file +export const OPEN_BRIEFING_COMMAND = {title: 'Open Briefing', command: 'deadlock.openBriefing'}; \ No newline at end of file diff --git a/plugins/deadlock-extension/src/deadlockPanel.ts b/plugins/deadlock-extension/src/deadlockPanel.ts index 0a98788ce6616121c4c19a04a2a1afcf0d162431..6b968f6c3ef8f91a5a3ee0c801bcc87a8d901bcb 100644 --- a/plugins/deadlock-extension/src/deadlockPanel.ts +++ b/plugins/deadlock-extension/src/deadlockPanel.ts @@ -1,8 +1,7 @@ import * as vscode from 'vscode'; -import * as fs from 'fs'; import * as path from 'path'; import { TreeItemCollapsibleState } from 'vscode'; -import { OPEN_BRIEFING_COMMAND, OPEN_HELP_COMMAND } from './command'; +import { OPEN_BRIEFING_COMMAND } from './command'; const DOCUMENTATION_LABEL = 'Documentation'; @@ -39,11 +38,6 @@ export class DepNodeProvider implements vscode.TreeDataProvider<Action> { TreeItemCollapsibleState.None, 'document', OPEN_BRIEFING_COMMAND), - new Action( - 'Help', - TreeItemCollapsibleState.None, - 'help', - OPEN_HELP_COMMAND) ]); } diff --git a/plugins/deadlock-extension/src/extension.ts b/plugins/deadlock-extension/src/extension.ts index db39c1e6a2d27ec7a3e82433c6af01c77ec46f95..6fe7a9b64758a9a5a43713341dbdf98c9312fd02 100644 --- a/plugins/deadlock-extension/src/extension.ts +++ b/plugins/deadlock-extension/src/extension.ts @@ -1,34 +1,52 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires +const cp = require('child_process'); + import * as vscode from 'vscode'; import { DepNodeProvider } from './deadlockPanel'; import BriefingView, { BRIEFING_ID } from './view/briefingView'; -import HelpView, { HELP_ID } from './view/helpView'; import View from './view/view'; -import { OPEN_BRIEFING_COMMAND, OPEN_HELP_COMMAND } from './command'; +import { OPEN_BRIEFING_COMMAND } from './command'; export function initViews(extensionPath: string) { new BriefingView(extensionPath); - new HelpView(extensionPath); } +function copyProjectSrouces() { + cp.exec('cp /project/* /home/project/', (err, stdout, stderr) => { + console.log('stdout: ' + stdout); + console.log('stderr: ' + stderr); + if (err) { + console.log('error: ' + err); + } + }); +} -export function activate(context: vscode.ExtensionContext) { +function setUpProjectDir() { + cp.exec('ls -1 /home/project/ | wc -l', (err, stdout, stderr) => { + if (!err) { + if (parseInt(stdout) === 0) { + copyProjectSrouces(); + } + } + }); +} +export function activate(context: vscode.ExtensionContext) { initViews(context.extensionPath); + setUpProjectDir(); // @ts-ignore const deadlockPanelProvider = new DepNodeProvider(vscode.workspace.rootPath); - vscode.window.registerTreeDataProvider('deadlockPanel', deadlockPanelProvider); + vscode.window.registerTreeDataProvider( + 'deadlockPanel', + deadlockPanelProvider + ); context.subscriptions.push( vscode.commands.registerCommand(OPEN_BRIEFING_COMMAND.command, () => { View.getView(BRIEFING_ID).createOrShow(); }) ); - context.subscriptions.push( - vscode.commands.registerCommand(OPEN_HELP_COMMAND.command, () => { - View.getView(HELP_ID).createOrShow(); - }) - ); + View.getView(BRIEFING_ID).createOrShow(); } - diff --git a/plugins/deadlock-extension/src/view/briefingView.ts b/plugins/deadlock-extension/src/view/briefingView.ts index b8ee9e1b0d3988c36dba90d4ace85d1243ffffa9..d4072f66ed304642f96b2b532f95cdf20a1bea4d 100644 --- a/plugins/deadlock-extension/src/view/briefingView.ts +++ b/plugins/deadlock-extension/src/view/briefingView.ts @@ -6,9 +6,12 @@ import * as path from 'path'; // eslint-disable-next-line @typescript-eslint/no-var-requires const marked = require('marked'); +import { USER_CHALLENGE_PATH } from '../config'; + export const BRIEFING_ID = 'brefingView'; export default class BriefingView extends View { private briefingContent: string | undefined; + private userChallengeConfig: any | undefined; constructor(extensionPath: string) { super(BRIEFING_ID, extensionPath, 'Briefing', 'Briefing'); @@ -28,15 +31,53 @@ export default class BriefingView extends View { this.update(); }); } + + vscode.workspace + .openTextDocument(vscode.Uri.parse(USER_CHALLENGE_PATH)) + .then((userConfig) => { + this.userChallengeConfig = JSON.parse(userConfig.getText()); + this.update(); + }); } render() { + let output = ''; + if (this.briefingContent) { - return `<h2>Mission Goal 🕶</h2>${marked(this.briefingContent)}`; + output += `<h2>Mission Goal 🕶</h2>${marked(this.briefingContent)}`; + } else if (this.loaded) { + output += 'Cannot load Briefing.'; + } else { + output += 'Loading briefing..'; + } + + output += '<br/>'; + + if (this.userChallengeConfig) { + output += this.renderUserChallengeConfig(); } else if (this.loaded) { - return 'Cannot load Briefing.'; + output += 'Cannot load help.'; } else { - return 'loading..'; + output += 'Loading help..'; + } + + return output; + } + + private renderUserChallengeConfig() { + let adresses = ''; + + let pathsLength = 0; + for (const key in this.userChallengeConfig?.paths) { + pathsLength++; + const path = this.userChallengeConfig?.paths[key]; + adresses += `<li>${key} binded on <a href="https://${this.userChallengeConfig?.host}/${path}">${path}</a></li>`; + } + + if (pathsLength > 0) { + return `<h3>Configuration</h3>You have the following adresses availables for your challenge : <ul>${adresses}</ul>`; } + + return ''; } } \ No newline at end of file diff --git a/plugins/deadlock-extension/src/view/helpView.ts b/plugins/deadlock-extension/src/view/helpView.ts deleted file mode 100644 index 3f9e773b6519b4606cfd6e787f47ed61df625cf7..0000000000000000000000000000000000000000 --- a/plugins/deadlock-extension/src/view/helpView.ts +++ /dev/null @@ -1,50 +0,0 @@ -import View from './view'; - -import * as vscode from 'vscode'; - -import { USER_CHALLENGE_PATH } from '../config'; - -export const HELP_ID = 'helpView'; - -export default class HelpView extends View { - private userChallengeConfig: any | undefined; - - constructor(extensionPath: string) { - super(HELP_ID, extensionPath, 'Help', 'Help'); - } - - load() { - vscode.workspace - .openTextDocument(vscode.Uri.parse(USER_CHALLENGE_PATH)) - .then((userConfig) => { - this.userChallengeConfig = JSON.parse(userConfig.getText()); - this.update(); - }); - } - - render() { - if (this.userChallengeConfig) { - return this.showUserChallengeConfig(); - } else if (this.loaded) { - return 'Cannot load help.'; - } else { - return 'loading..'; - } - } - - private showUserChallengeConfig() { - let adresses = ''; - - let pathsLength = 0; - for (const key in this.userChallengeConfig?.paths) { - pathsLength++; - const path = this.userChallengeConfig?.paths[key]; - adresses += `<li>${key} binded on <a href="https://${this.userChallengeConfig?.host}/${path}">${path}</a></li>`; - } - - if (pathsLength > 0) { - return `You have the following adresses availables for your challenge : <ul>${adresses}</ul>`; - } - return ''; - } -}