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 +}