From 136edbea160f808b6b7b84eb2bc67963e94416cf Mon Sep 17 00:00:00 2001
From: Iovka Boneva <iovka.boneva@univ-lille.fr>
Date: Thu, 21 Dec 2023 17:08:51 +0100
Subject: [PATCH] =?UTF-8?q?doc=20m=C3=A0j?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 doc/user.md                                   | 24 +++++++++++++++----
 .../main/kotlin/fr/ulille/grapp/ui/Grapp.kt   |  5 +++-
 2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/doc/user.md b/doc/user.md
index 6f86403..144fd4b 100644
--- a/doc/user.md
+++ b/doc/user.md
@@ -11,6 +11,7 @@ L'outil permet de
 - visualiser les graphes et les résultats calculés
 
 L'interaction avec l'utilisateur se fait à travers un invite de commande.
+Voir plus bas comment il faut lancer le programme.
 
 Voici un exemple d'utilisation, où on 
 
@@ -20,15 +21,15 @@ Voici un exemple d'utilisation, où on
 - dessine le résultat `r1.1` ayant comme effet de produire les fichiers `dijkstra-livraison.dot` et `dijkstra-livraison.png`
 
 ```{style="background-color:lightgray"}
-grapp:> load livraison.yaml
+grapp:> grapp load livraison.yaml
 Graphe chargé.
-grapp:> shortest-path -algorithm Dijkstra -on livraison -from a
+grapp:> grapp shortest-path -algorithm Dijkstra -on livraison -from a
              | a |  b |  c | d | e | f |  g |  h |  i | j
 -------------|---|----|----|---|---|---|----|----|----|--
     distance | 0 | 11 | 15 | 2 | 5 | 9 | 11 | 21 | 16 | 4
 prédécesseur |   |  a |  b | a | d | e |  f |  g |  f | d
 
-grapp:> list
+grapp:> grapp list
 Graphes chargés et résultats calculés:
 
 Id   | Nom de graphe | Description graphe / résultat
@@ -36,7 +37,7 @@ Id   | Nom de graphe | Description graphe / résultat
 g1   | livraison     | Villes et réseau routier
 r1.1 |               | Dijkstra on livraison from a
 
-grapp:> draw -result r1.1 -to dijkstra-livraison
+grapp:> grapp draw -result r1.1 -to dijkstra-livraison
 Dessin du graphe sauvegardé.
 ```
 
@@ -55,7 +56,7 @@ Par exemple `load --help` affiche l'aide de la commande `load`.
 - `list`  <br>
   Affiche la liste des graphes déjà chargés et des résultats déjà calculés sur ces graphes.
 - `draw` <br>
-  Produit un fichier image contenant le dessin d'un graphe ou d'un résultat.  
+  Produit un fichier image contenant le dessin d'un graphe ou d'un résultat.
 - `exit` <br>
   Quitte le programme. Les graphes chargés et résultats calculés sont perdus (pas de sauvegarde de session).
 - `shortest-path` <br>
@@ -79,3 +80,16 @@ Toutes les commandes exécutant un algorithme (shortest-path, optimal-path, trav
   Écrit le tableau des résultats au format CSV dans le fichier donné. L'écriture se fait en concaténation.
 - `-silent` <br>
   N'affiche pas le résultat sur la console.
+
+
+Lancer le programme
+---
+
+Le programme est fourni en tant qu'archive jar et des scripts pour la lancer. 
+Dans la suite on utilise le script nommé `grapp`.
+
+Le programme fonctionne en mode client-serveur, le client et le serveur s'exécutant dans le même terminal.
+
+1. Lancer le serveur avec la commande `grapp server &` **en tâche de fond**
+2. Vous pouvez maintenant exécuter les commandes décrites ci-dessus. Elles seront envoyées au serveur qui affichera les résultats.
+
diff --git a/grapp/src/main/kotlin/fr/ulille/grapp/ui/Grapp.kt b/grapp/src/main/kotlin/fr/ulille/grapp/ui/Grapp.kt
index c2c0db5..dfa8b59 100644
--- a/grapp/src/main/kotlin/fr/ulille/grapp/ui/Grapp.kt
+++ b/grapp/src/main/kotlin/fr/ulille/grapp/ui/Grapp.kt
@@ -491,12 +491,15 @@ class CliktConsoleOnSocket (val ss: ServerSocket): CliktConsole {
 }
 
 fun main(vararg args: String) {
-    if (args.isEmpty()) {
+    if (args.isEmpty() || args.isNotEmpty() && args[0] == "server") {
         // On démarre le serveur
         println(Messages.grappIntro)
         val ss = ServerSocket(12345)
         Grapp.run(CliktConsoleOnSocket(ss))
         ss.close()
+    } else if (args.size == 1 && args[0] == "standalone") {
+        println(Messages.grappIntro)
+        Grapp.run(defaultCliktConsole())
     } else {
         // On véhicule la commande vers le serveur
         val s = Socket("localhost", 12345)
-- 
GitLab