Skip to content
Snippets Groups Projects

Deadlock Desktop est un projet dont l'objectif est de permettre à un étudiant de réaliser des exercices deadlock sur son IDE Vscode directement. Pour cela, le répertoire héberge 3 éléments :

  • Une extension Vscode : L'extension est installée sur l'IDE Vscode de l'étudiant et est responsable de l'ouverture de l'exercice dans un devcontainer.

  • Le recorder : Une application node qui va effectuer des sauvegardes du code source de l'étudiant à chaque fois que celui-ci va modifier un fichier ou saisir certaines commandes dans son terminal.

  • Une image Docker : L'image contient des programmes basiques et le recorder qui est lancé au démarrage du conteneur.

Requirements:

  1. NodeJS > ^14.X
  2. Vscode ou Vscodium
  3. Docker

Setup

Afin d'installer les éléments requis pour le développement, vous pouvez lancer le script ./setup.sh.

L'image Docker desktop

Il s'agit d'une image qui sera utilisé par tous les créateurs d'exercices comme base.
Le créateur d'exercice peut ensuite ajouter l'exercice et les dépendances qu'il souhaite pour créer l'image de son exercice.

L'image est décrite dans le fichier Dockerfile.desktop.

Recorder :

Le recorder permet de sauvegarder régulièrement le code de l'utilisateur. Pour se faire, il écoute les commandes exécutées par l'utilisateur. Si l'une d'entre elles contient java, npm ou yarn alors un snapshot du code est réalisé. Il va également faire un snapshot du code lorsque l'étudiant modifiera les fichiers de l'exercice.

Build

./build-recorder.sh

Construire les plugins Vscode :

./build-plugins.sh

Tous les plugins qui se trouvent dans deadlock-public vont être construit en .vsix puis placés dans plugins/ (ex: deadlock-plugins/deadlock-extension).
Il est aussi possible d'ajouter directement des plugins .vsix en ajoutant le fichier dans plugins/

Plus d'informations sur l'extension deadlock-coding dans ce README.

Construire l'image Deadlock Desktop avec le recorder

./build.sh $TAG desktop