From 8579a240ae7e4c4781d0dfdc03a09898847b10bf Mon Sep 17 00:00:00 2001
From: Alex <apuret@takima.fr>
Date: Tue, 7 Dec 2021 18:32:23 +0100
Subject: [PATCH] refactor: build extension and recorder

---
 build-plugins.sh                                 |  4 ++--
 build-recorder.sh                                | 14 ++++++++------
 deadlock-plugins/README.md                       |  7 +++++++
 deadlock-plugins/deadlock-extension/build.sh     |  6 ++++++
 deadlock-plugins/deadlock-extension/install.sh   |  5 +++++
 deadlock-plugins/deadlock-extension/package.json |  5 ++++-
 6 files changed, 32 insertions(+), 9 deletions(-)
 create mode 100644 deadlock-plugins/README.md
 create mode 100755 deadlock-plugins/deadlock-extension/build.sh
 create mode 100755 deadlock-plugins/deadlock-extension/install.sh

diff --git a/build-plugins.sh b/build-plugins.sh
index aea0d6e9..764f6d0c 100755
--- a/build-plugins.sh
+++ b/build-plugins.sh
@@ -8,8 +8,8 @@ for dir in deadlock-plugins/*/; do
     echo "Building $dir"
     cd $dir
     CURRENT_PLUGIN_DIR=$(basename "$PWD")
-    npm install
-    npm run vsce
+    ./install.sh
+    ./build.sh CI_COMMIT_SHORT_SHA
     cp *.vsix ../../plugins/$CURRENT_PLUGIN_DIR-$CI_COMMIT_SHORT_SHA.vsix
     cd -
 done
diff --git a/build-recorder.sh b/build-recorder.sh
index c9ea7b8a..cbc10ae7 100755
--- a/build-recorder.sh
+++ b/build-recorder.sh
@@ -1,15 +1,17 @@
 #!/bin/sh
 
-# You must build deadlock-extension first /!\
-
 set -e
 
 OUTPUT_DIR='recorder-out'
 
-cp -r ./deadlock-plugins/deadlock-extension/out/* $OUTPUT_DIR
-cp ./deadlock-plugins/deadlock-extension/packa* $OUTPUT_DIR
-cd $OUTPUT_DIR
+cd ./deadlock-plugins/deadlock-extension/
+
 npm install
-npx webpack --env production 
+npm run build-recorder
+npm run build-preStop
+
+cd -
+cp -r ./deadlock-plugins/deadlock-extension/out/recorder.js $OUTPUT_DIR
+cp -r ./deadlock-plugins/deadlock-extension/out/preStop.js $OUTPUT_DIR
 
 
diff --git a/deadlock-plugins/README.md b/deadlock-plugins/README.md
new file mode 100644
index 00000000..ca2964e1
--- /dev/null
+++ b/deadlock-plugins/README.md
@@ -0,0 +1,7 @@
+
+Contient une liste de dossier des extensions à construire pour ajouter à Theia pendant la phase de build.
+Chaque dossier d'extension doit contenir un fichier `install.sh` et `build.sh` qui doivent contenir
+respectivement la façon d'installer les dépendances et les executions pour construire la dépendance,
+c'est à dire créer un fichier `vsix` à la fin.
+
+Chaque fichier build.sh sera appelé avec comme premier argument le tag en cours.
\ No newline at end of file
diff --git a/deadlock-plugins/deadlock-extension/build.sh b/deadlock-plugins/deadlock-extension/build.sh
new file mode 100755
index 00000000..77a68674
--- /dev/null
+++ b/deadlock-plugins/deadlock-extension/build.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+set -e
+
+npm run build-extension
+npm run vsce
diff --git a/deadlock-plugins/deadlock-extension/install.sh b/deadlock-plugins/deadlock-extension/install.sh
new file mode 100755
index 00000000..a10ff266
--- /dev/null
+++ b/deadlock-plugins/deadlock-extension/install.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+set -e
+
+npm install
\ No newline at end of file
diff --git a/deadlock-plugins/deadlock-extension/package.json b/deadlock-plugins/deadlock-extension/package.json
index fdef4466..de61fd22 100644
--- a/deadlock-plugins/deadlock-extension/package.json
+++ b/deadlock-plugins/deadlock-extension/package.json
@@ -54,7 +54,10 @@
   },
   "scripts": {
     "vsce": "vsce package",
-    "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node",
+    "esbuild-base": "esbuild --bundle --format=cjs --platform=node",
+    "build-extension": "npm run esbuild-base -- --external:vscode ./src/extension.ts --outfile=out/main.js --minify",
+    "build-recorder": "npm run esbuild-base -- ./src/recorder/index.ts --outfile=out/recorder.js --minify",
+    "build-preStop": "npm run esbuild-base -- ./src/recorder/preStop.ts --outfile=out/preStop.js --minify",
     "esbuild": "npm run esbuild-base -- --sourcemap",
     "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch",
     "lint": "eslint . --ext .ts,.tsx",
-- 
GitLab