diff --git a/entrypoint.sh b/entrypoint.sh
old mode 100644
new mode 100755
index b70fdc8..ff4b61c
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -1,37 +1,48 @@
#!/usr/bin/env bash
-echo "Repository name: "$DRONE_REPO_NAME
-echo "Repository owner: "$DRONE_REPO_OWNER
+echo "Repository name : $DRONE_REPO_NAME"
+echo "Repository owner: $DRONE_REPO_OWNER"
echo "Generating and deploying documentation for user $DRONE_REPO_OWNER and repository $DRONE_REPO_NAME"
-mkdir -p /docs/doxygen/
-mkdir -p /docs/docusaurus/
-
DOCDIR="Documentation"
-[ -d "/drone/src/documentation" ] && DOCDIR="documentation"
-
-[ -d "/drone/src/$DOCDIR/doxygen" ] && cd /drone/src/$DOCDIR/doxygen && doxygen Doxyfile
-[ -d "/drone/src/$DOCDIR/docusaurus" ] && cd /drone/src/$DOCDIR/docusaurus && npm install && npm run build
-
-swaggerfile=$(find /docs -maxdepth 1 -type f -iname "swagger.*" -printf "%f" -quit)
-if [[ ! -z "$swaggerfile" ]]
-then
- echo "
-
-
-
-
-
- Suivez ce lien.
-
-" > /docs/CLICKME.html
+while [ "$1" ]; do
+ case "$1" in
+ "-d" | "--dir")
+ DOCDIR="$2"
+ shift 1
+ ;;
+ "-t" | "--type")
+ GENERATOR_NAME="$2"
+ GENERATOR_SCRIPT="generators/$GENERATOR_NAME.sh"
+ if [ ! -f "$GENERATOR_SCRIPT" ]; then
+ echo "type de documentation inconnue, veuillez entrer un générateur valide" >&2
+ exit 1
+ fi
+ shift 1
+ ;;
+ *)
+ echo "option inconnue $1" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [ ! "$GENERATOR_SCRIPT" ]; then
+ echo "option -t obligatoire" >&2
fi
-cd /drone/src/$DOCDIR
+. "$GENERATOR_SCRIPT"
+
+generate "$DOCDIR" # génère la doc avec le bon générateur
-[ -d "/drone/src/$DOCDIR/doxygen" ] && rsync --rsync-path="mkdir -p /usr/share/nginx/html/$DRONE_REPO_OWNER/doxygen/$DRONE_REPO_NAME/ && rsync" -e "ssh -o StrictHostKeyChecking=no" -avz --delete /docs/doxygen/ root@nginx:/usr/share/nginx/html/$DRONE_REPO_OWNER/doxygen/$DRONE_REPO_NAME/
-[ -d "/docs/CLICKME.html" ] && rsync --rsync-path="mkdir -p /usr/share/nginx/html/$DRONE_REPO_OWNER/swagger/$DRONE_REPO_NAME/ && rsync" -e "ssh -o StrictHostKeyChecking=no" -avz --delete /docs/{swagger.*,CLICKME.html} root@nginx:/usr/share/nginx/html/$DRONE_REPO_OWNER/swagger/$DRONE_REPO_NAME/
-[ -d "/drone/src/$DOCDIR/docusaurus" ] && rsync --rsync-path="mkdir -p /usr/share/nginx/html/$DRONE_REPO_OWNER/docusaurus/$DRONE_REPO_NAME/ && rsync" -e "ssh -o StrictHostKeyChecking=no" -avz --delete docusaurus/build/ root@nginx:/usr/share/nginx/html/$DRONE_REPO_OWNER/docusaurus/$DRONE_REPO_NAME/
+SERVER_TARGET="/usr/share/nginx/html/$DRONE_REPO_OWNER/$GENERATOR_NAME/$DRONE_REPO_NAME/"
-exit 0
\ No newline at end of file
+# lance rsync en mode archive, verbeux et compression
+# créee le dossier cible ($SERVER_TARGET)
+# puis envoie les fichiers générés par le générateur dans le dossier cible en supprimant les elements qui ne sont pas dans le dossier généré
+rsync -avz \
+ --rsync-path="mkdir -p $SERVER_TARGET" \
+ -e "ssh -o StrictHostKeyChecking=no" \
+ --delete "$GEN_PATH" root@nginx:$SERVER_TARGET
diff --git a/generators/docusaurus.sh b/generators/docusaurus.sh
new file mode 100644
index 0000000..2586b45
--- /dev/null
+++ b/generators/docusaurus.sh
@@ -0,0 +1,8 @@
+GEN_PATH="/docs/docusaurus"
+
+generate() {
+ mkdir -p /docs/docusaurus/
+ (cd /drone/src/"$1"/docusaurus && npm install && npm run build)
+
+ mv build/* $GEN_PATH
+}
diff --git a/generators/doxygen.sh b/generators/doxygen.sh
new file mode 100644
index 0000000..02140a2
--- /dev/null
+++ b/generators/doxygen.sh
@@ -0,0 +1,12 @@
+GEN_PATH="/docs/doxygen"
+
+generate() {
+ mkdir -p /docs/doxygen/
+ if [ ! -f "$1"/Doxyfile ]; then
+ echo "erreure generateur doxygen : Le fichier $1/Doxyfile est manquant" >&2
+ exit 1
+ fi
+
+ cd doxygen && doxygen "$1"/Doxyfile
+ mv html/* $GEN_PATH
+}
diff --git a/generators/swagger.sh b/generators/swagger.sh
new file mode 100644
index 0000000..8f9f193
--- /dev/null
+++ b/generators/swagger.sh
@@ -0,0 +1,20 @@
+GEN_PATH="/docs/swagger"
+
+generate() {
+ SWAGGER_FILE=$(find DOCDIR -maxdepth 1 -type f -iname "swagger.*" -printf "%f" -quit)
+ if [[ ! "$SWAGGER_FILE" ]]; then
+ echo "fichier de configuration ($1/swagger.*) introuvable" >&2
+ fi
+
+ echo "
+
+
+
+
+
+ Suivez ce lien.
+
+ " > $GEN_PATH/CLICKME.html
+
+ mv "$SWAGGER_FILE" $GEN_PATH
+}