Loading .gitlab-ci.ymldeleted 100644 → 0 +0 −49 Original line number Diff line number Diff line stages: - build - upload - release variables: REGISTRY_PROJECT_ID: "855" build: stage: build image: openjdk:17-alpine rules: - if: $CI_COMMIT_TAG before_script: - apk add --no-cache make - apk add --no-cache curl - apk add --no-cache bash - apk add --no-cache zip script: - echo $CI_COMMIT_TAG > VERSION - make package artifacts: paths: - dist/ upload: stage: upload image: curlimages/curl:latest rules: - if: $CI_COMMIT_TAG script: - ASSET="max-v2_${CI_COMMIT_TAG}.zip" - PACKAGE_REGISTRY_URL=${CI_API_V4_URL}/projects/${REGISTRY_PROJECT_ID}/packages/generic/max-v2/${CI_COMMIT_TAG} - echo "will upload "$ASSET" at "${PACKAGE_REGISTRY_URL}/${ASSET} - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file dist/${ASSET} "${PACKAGE_REGISTRY_URL}/${ASSET}" release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_TAG script: - ASSET="max-v2_${CI_COMMIT_TAG}.zip" - PACKAGE_REGISTRY_URL=${CI_API_V4_URL}/projects/${REGISTRY_PROJECT_ID}/packages/generic/max-v2/${CI_COMMIT_TAG} - | release-cli create --name "MaX-v2_$CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ --description "Pour installer MaX V2, télécharger l'archive packagée (rubrique *other*) ci-dessus." \ --assets-link "{\"name\":\"Télécharger la version packagée - ${ASSET}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${ASSET}\"}" Makefile +43 −43 Original line number Diff line number Diff line Loading @@ -40,56 +40,55 @@ tests: ## Exécution des tests unitaires .PHONY: tests package: install ## Construction d'une version distribuable de MaX @if [ -d dist ]; then\ rm -rf dist;\ fi # génération d'un fichier VERSION @if [ ! -f VERSION ]; then\ echo 'Génération fichier de VERSION à partir du numéro de commit.';\ git rev-parse HEAD > VERSION ;\ check: ## vérification de la configuration @if [ -f 'config.xml' ]; then\ .max/basex/bin/basex -q"validate:rng('config.xml', '.max/resources/max-configuration.rng')" || false;\ echo 'MaX : Fichier config.xml valide.';\ else\ echo 'MaX : Fichier de configuration manquant : config.xml';\ exit 1;\ fi @mkdir -p package @cp -rL .max package/.max @cp VERSION package/.max/ @rm -rf package/.max/basex/webapp/max/bundles/* # nettoyage du BaseX copié : suppression fichiers liées aux bundles, des données @rm package/.max/basex/.basex @find package/.max/basex/data/ -mindepth 1 -type d -exec rm -rf '{}' '+' # copie des sources @cp -r $(SRC_DIR)/main/core package/.max/basex/webapp/max/ @cp -r $(SRC_DIR)/main/bundles/max-dev package/.max/basex/webapp/max/bundles/ @cp -r $(SRC_DIR)/main/bundles/max-export package/.max/basex/webapp/max/bundles/ @cp -r $(SRC_DIR)/scripts/max.sh package/ $(eval version=`cat VERSION`) mv package max-v2_$(version) @zip -r max-v2_$(version).zip max-v2_$(version) @mkdir dist @mv max-v2_$(version).zip dist/ @echo 'Package créé : dist/max-v2_'$(version)'.zip' @rm -rf max-v2_$(version) @rm VERSION .PHONY: package run: ## Lancement de MaX @./src/scripts/max.sh run .PHONY: check run: check ## Lancement de MaX @.max/basex/bin/basexhttpstop || true @.max/basex/bin/basexhttp -h1234 .PHONY: run clean: ## Supprime l'installation de MaX et les fichiers du projet @./src/scripts/max.sh clean @read -p "Êtes-vous sûr? [o/N] " ans && ans=$${ans:-N} ; \ if [ $${ans} = o ] || [ $${ans} = O ]; then \ rm -rf content_html;\ rm -rf templates;\ rm -rf autoroute;\ rm -rf locales;\ rm config.xml;\ rm -rf .max;\ else\ echo "Opération annulée" ; \ fi .PHONY: clean init: ## Initialisation à partir du fichier de configuration courant @ ./src/scripts/max.sh install .PHONY: init demo: ## Installation d'une édition de démo @./src/scripts/max.sh demo @if [ ! -d '.max/basex' ]; then\ echo 'Installation de MaX manquante, veuillez lancer : make install.';\ else\ cp -r .max/fixtures/max .max/basex/data/;\ cp -r .max/fixtures/content_html .;\ cp -r .max/fixtures/templates .;\ cp -r .max/fixtures/autoroute .;\ cp -r .max/fixtures/config.xml .;\ cp -r .max/fixtures/locales .;\ $(MAKE) init ;\ echo 'Demo installée avec succès.';\ fi .PHONY: demo feed : ## Ajout de sources xml feed: ## Insertion de sources XML @if [ -z $(path) ]; then\ echo "USAGE : make feed path=/path/to/dir/";\ exit 1;\ Loading @@ -98,11 +97,12 @@ feed : ## Ajout de sources xml echo "USAGE : make feed path=/path/to/dir/"; \ exit 1;\ fi;\ @./src/scripts/max.sh feed $(path) $(shell .max/basex/bin/basex -c"OPEN max; ADD "$(path))\ echo $(path)" ajouté à la base 'max'." .PHONY: feed help: ## Affiche cette aide @echo "\nChoisissez une commande. Les choix sont:\n" @grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;36m%-12s\033[m %s\n", $$1, $$2}' Loading README.md +0 −6 Original line number Diff line number Diff line Loading @@ -44,12 +44,6 @@ Ce dépôt contient les bundles Il contient le serveur BaseX. C'est un dossier (caché) purement technique dans lequel l'utilisateur n'aura pas (et ne devra pas) intervenir. ## Makefile et max.sh - Le Makefile propose les fonctionnalités liées au développement du coeur de MaX. - `max.sh` (src/scripts/max.sh) contient les commandes utilisateur de MaX ## Documentations Consultables [ici](https://git.unicaen.fr/pdn-certic/max-documentation/-/tree/max-v2/docs) Loading src/resources/expath-pkg.xml +1 −1 Original line number Diff line number Diff line <package xmlns="http://expath.org/ns/pkg" name="max" abbrev="max" version="0.0.1" version="0.0.2-alpha" spec="1.0"> <title>MaX app</title> Loading src/scripts/max.shdeleted 100755 → 0 +0 −165 Original line number Diff line number Diff line #!/bin/bash RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color abort(){ echo -e "\n ${RED}Abort${NC} \n" exit 1 } display_usage(){ echo echo -e "\thelp: Affichage de l'aide." echo -e "\tversion: Affichage de la version de MaX." echo -e "\tdemo: Installation du corpus de démo." echo -e "\trun: Démarrage du serveur." echo -e "\tfeed: Ajout de sources XML" echo -e "\tadd: Installation d'un bundle" echo -e "\tfreeze: Statification du corpus" echo -e "\tclean: Suppression du corpus" echo } install(){ # install demo corpus .max/basex/bin/basex -Q".max/resources/bundles-installer.xq" } install_demo(){ if [ ! -d '.max/basex' ]; then echo 'Installation de MaX erronée.' else cp -r .max/fixtures/max .max/basex/data/ cp -r .max/fixtures/content_html . cp -r .max/fixtures/templates . cp -r .max/fixtures/autoroute . cp -r .max/fixtures/config.xml . cp -r .max/fixtures/locales . install echo 'Demo installée avec succès.' fi } check(){ # check config file according to rng if [ -f 'config.xml' ]; then\ .max/basex/bin/basex -q"validate:rng('config.xml', '.max/resources/max-configuration.rng')" || false echo 'MaX : Fichier config.xml valide.' else echo 'MaX : Fichier de configuration manquant : config.xml' abort fi } run() { # run server check .max/basex/bin/basexhttpstop || true .max/basex/bin/basexhttp -h1234 } clean() { # clean files read -r -e -p "Êtes-vous sûr? [o/N] ? " res if [ $res == 'o' ] || [ $res == 'O' ]; then rm -rf content_html;\ rm -rf templates;\ rm -rf autoroute;\ rm -rf locales;\ rm config.xml;\ if [ ! -f .max/VERSION ]; then rm -rf .max; fi; else echo "Opération annulée" fi } feed(){ # add XML sources to 'max' db if [ -z $1 ]; then echo "USAGE : max.sh feed /path/to/dir/" abort elif [ ! -d $1 ]; then\ echo "Dossier "$1" introuvable !" echo "USAGE : max.sh feed path=/path/to/dir/" abort fi; .max/basex/bin/basex -c"OPEN max; ADD "$1 echo $1" ajouté à la base 'max'." } freeze(){ # freeze corpus as HTML pages run & if [ -d site ]; then rm -rf site fi sleep 5 echo -n "Statification..." wget -P site -nH --mirror --page-requisites --html-extension --convert-links 'http://127.0.0.1:1234/fr/pages/index.html' echo -n "Version statique construite dans le répertoire site/" } add(){ # Add bundle if [ -z $1 ]; then echo "USAGE : max.sh add bundle_url.git" abort elif [[ $1 == *.git ]] # * is used for pattern matching then basename=$(basename $1) filename=${basename%.*} if [ -d '.max/basex/webapp/max/bundles/'$filename ]; then echo 'Le bundle est déjà installé : .max/basex/webapp/max/bundles/'$filename abort else git clone $1 .max/basex/webapp/max/bundles/$filename if [ $? -eq 0 ]; then .max/basex/bin/basex -u -b bundleUrl="$1" ".max/resources/add-bundle.xq" else echo 'Clonage impossible de '$1 abort fi fi else echo "Seul les URLs de dépôt git sont acceptées" fi } DIRECTORY=$(cd "$(dirname "$0")" && pwd) #get max version if [[ ! -f ${DIRECTORY}/.max/VERSION ]] then MAX_VERSION=$(git rev-parse HEAD)'-dev' else MAX_VERSION=$(cat "${DIRECTORY}/.max/VERSION") fi echo "---------------------------" echo " MaX V2 - $MAX_VERSION" echo "---------------------------" if [[ "$#" -eq 0 ]]; then display_usage; fi; while [[ "$#" -gt 0 ]]; do case $1 in help) display_usage exit 0;; version) echo $MAX_VERSION exit 0;; demo) install_demo exit 0;; run) run exit 0;; clean) clean exit 0;; freeze) freeze exit 0;; feed) feed $2 exit 0;; add) add $2 exit 0;; esac shift done Loading
.gitlab-ci.ymldeleted 100644 → 0 +0 −49 Original line number Diff line number Diff line stages: - build - upload - release variables: REGISTRY_PROJECT_ID: "855" build: stage: build image: openjdk:17-alpine rules: - if: $CI_COMMIT_TAG before_script: - apk add --no-cache make - apk add --no-cache curl - apk add --no-cache bash - apk add --no-cache zip script: - echo $CI_COMMIT_TAG > VERSION - make package artifacts: paths: - dist/ upload: stage: upload image: curlimages/curl:latest rules: - if: $CI_COMMIT_TAG script: - ASSET="max-v2_${CI_COMMIT_TAG}.zip" - PACKAGE_REGISTRY_URL=${CI_API_V4_URL}/projects/${REGISTRY_PROJECT_ID}/packages/generic/max-v2/${CI_COMMIT_TAG} - echo "will upload "$ASSET" at "${PACKAGE_REGISTRY_URL}/${ASSET} - | curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file dist/${ASSET} "${PACKAGE_REGISTRY_URL}/${ASSET}" release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_TAG script: - ASSET="max-v2_${CI_COMMIT_TAG}.zip" - PACKAGE_REGISTRY_URL=${CI_API_V4_URL}/projects/${REGISTRY_PROJECT_ID}/packages/generic/max-v2/${CI_COMMIT_TAG} - | release-cli create --name "MaX-v2_$CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \ --description "Pour installer MaX V2, télécharger l'archive packagée (rubrique *other*) ci-dessus." \ --assets-link "{\"name\":\"Télécharger la version packagée - ${ASSET}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${ASSET}\"}"
Makefile +43 −43 Original line number Diff line number Diff line Loading @@ -40,56 +40,55 @@ tests: ## Exécution des tests unitaires .PHONY: tests package: install ## Construction d'une version distribuable de MaX @if [ -d dist ]; then\ rm -rf dist;\ fi # génération d'un fichier VERSION @if [ ! -f VERSION ]; then\ echo 'Génération fichier de VERSION à partir du numéro de commit.';\ git rev-parse HEAD > VERSION ;\ check: ## vérification de la configuration @if [ -f 'config.xml' ]; then\ .max/basex/bin/basex -q"validate:rng('config.xml', '.max/resources/max-configuration.rng')" || false;\ echo 'MaX : Fichier config.xml valide.';\ else\ echo 'MaX : Fichier de configuration manquant : config.xml';\ exit 1;\ fi @mkdir -p package @cp -rL .max package/.max @cp VERSION package/.max/ @rm -rf package/.max/basex/webapp/max/bundles/* # nettoyage du BaseX copié : suppression fichiers liées aux bundles, des données @rm package/.max/basex/.basex @find package/.max/basex/data/ -mindepth 1 -type d -exec rm -rf '{}' '+' # copie des sources @cp -r $(SRC_DIR)/main/core package/.max/basex/webapp/max/ @cp -r $(SRC_DIR)/main/bundles/max-dev package/.max/basex/webapp/max/bundles/ @cp -r $(SRC_DIR)/main/bundles/max-export package/.max/basex/webapp/max/bundles/ @cp -r $(SRC_DIR)/scripts/max.sh package/ $(eval version=`cat VERSION`) mv package max-v2_$(version) @zip -r max-v2_$(version).zip max-v2_$(version) @mkdir dist @mv max-v2_$(version).zip dist/ @echo 'Package créé : dist/max-v2_'$(version)'.zip' @rm -rf max-v2_$(version) @rm VERSION .PHONY: package run: ## Lancement de MaX @./src/scripts/max.sh run .PHONY: check run: check ## Lancement de MaX @.max/basex/bin/basexhttpstop || true @.max/basex/bin/basexhttp -h1234 .PHONY: run clean: ## Supprime l'installation de MaX et les fichiers du projet @./src/scripts/max.sh clean @read -p "Êtes-vous sûr? [o/N] " ans && ans=$${ans:-N} ; \ if [ $${ans} = o ] || [ $${ans} = O ]; then \ rm -rf content_html;\ rm -rf templates;\ rm -rf autoroute;\ rm -rf locales;\ rm config.xml;\ rm -rf .max;\ else\ echo "Opération annulée" ; \ fi .PHONY: clean init: ## Initialisation à partir du fichier de configuration courant @ ./src/scripts/max.sh install .PHONY: init demo: ## Installation d'une édition de démo @./src/scripts/max.sh demo @if [ ! -d '.max/basex' ]; then\ echo 'Installation de MaX manquante, veuillez lancer : make install.';\ else\ cp -r .max/fixtures/max .max/basex/data/;\ cp -r .max/fixtures/content_html .;\ cp -r .max/fixtures/templates .;\ cp -r .max/fixtures/autoroute .;\ cp -r .max/fixtures/config.xml .;\ cp -r .max/fixtures/locales .;\ $(MAKE) init ;\ echo 'Demo installée avec succès.';\ fi .PHONY: demo feed : ## Ajout de sources xml feed: ## Insertion de sources XML @if [ -z $(path) ]; then\ echo "USAGE : make feed path=/path/to/dir/";\ exit 1;\ Loading @@ -98,11 +97,12 @@ feed : ## Ajout de sources xml echo "USAGE : make feed path=/path/to/dir/"; \ exit 1;\ fi;\ @./src/scripts/max.sh feed $(path) $(shell .max/basex/bin/basex -c"OPEN max; ADD "$(path))\ echo $(path)" ajouté à la base 'max'." .PHONY: feed help: ## Affiche cette aide @echo "\nChoisissez une commande. Les choix sont:\n" @grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;36m%-12s\033[m %s\n", $$1, $$2}' Loading
README.md +0 −6 Original line number Diff line number Diff line Loading @@ -44,12 +44,6 @@ Ce dépôt contient les bundles Il contient le serveur BaseX. C'est un dossier (caché) purement technique dans lequel l'utilisateur n'aura pas (et ne devra pas) intervenir. ## Makefile et max.sh - Le Makefile propose les fonctionnalités liées au développement du coeur de MaX. - `max.sh` (src/scripts/max.sh) contient les commandes utilisateur de MaX ## Documentations Consultables [ici](https://git.unicaen.fr/pdn-certic/max-documentation/-/tree/max-v2/docs) Loading
src/resources/expath-pkg.xml +1 −1 Original line number Diff line number Diff line <package xmlns="http://expath.org/ns/pkg" name="max" abbrev="max" version="0.0.1" version="0.0.2-alpha" spec="1.0"> <title>MaX app</title> Loading
src/scripts/max.shdeleted 100755 → 0 +0 −165 Original line number Diff line number Diff line #!/bin/bash RED='\033[0;31m' GREEN='\033[0;32m' NC='\033[0m' # No Color abort(){ echo -e "\n ${RED}Abort${NC} \n" exit 1 } display_usage(){ echo echo -e "\thelp: Affichage de l'aide." echo -e "\tversion: Affichage de la version de MaX." echo -e "\tdemo: Installation du corpus de démo." echo -e "\trun: Démarrage du serveur." echo -e "\tfeed: Ajout de sources XML" echo -e "\tadd: Installation d'un bundle" echo -e "\tfreeze: Statification du corpus" echo -e "\tclean: Suppression du corpus" echo } install(){ # install demo corpus .max/basex/bin/basex -Q".max/resources/bundles-installer.xq" } install_demo(){ if [ ! -d '.max/basex' ]; then echo 'Installation de MaX erronée.' else cp -r .max/fixtures/max .max/basex/data/ cp -r .max/fixtures/content_html . cp -r .max/fixtures/templates . cp -r .max/fixtures/autoroute . cp -r .max/fixtures/config.xml . cp -r .max/fixtures/locales . install echo 'Demo installée avec succès.' fi } check(){ # check config file according to rng if [ -f 'config.xml' ]; then\ .max/basex/bin/basex -q"validate:rng('config.xml', '.max/resources/max-configuration.rng')" || false echo 'MaX : Fichier config.xml valide.' else echo 'MaX : Fichier de configuration manquant : config.xml' abort fi } run() { # run server check .max/basex/bin/basexhttpstop || true .max/basex/bin/basexhttp -h1234 } clean() { # clean files read -r -e -p "Êtes-vous sûr? [o/N] ? " res if [ $res == 'o' ] || [ $res == 'O' ]; then rm -rf content_html;\ rm -rf templates;\ rm -rf autoroute;\ rm -rf locales;\ rm config.xml;\ if [ ! -f .max/VERSION ]; then rm -rf .max; fi; else echo "Opération annulée" fi } feed(){ # add XML sources to 'max' db if [ -z $1 ]; then echo "USAGE : max.sh feed /path/to/dir/" abort elif [ ! -d $1 ]; then\ echo "Dossier "$1" introuvable !" echo "USAGE : max.sh feed path=/path/to/dir/" abort fi; .max/basex/bin/basex -c"OPEN max; ADD "$1 echo $1" ajouté à la base 'max'." } freeze(){ # freeze corpus as HTML pages run & if [ -d site ]; then rm -rf site fi sleep 5 echo -n "Statification..." wget -P site -nH --mirror --page-requisites --html-extension --convert-links 'http://127.0.0.1:1234/fr/pages/index.html' echo -n "Version statique construite dans le répertoire site/" } add(){ # Add bundle if [ -z $1 ]; then echo "USAGE : max.sh add bundle_url.git" abort elif [[ $1 == *.git ]] # * is used for pattern matching then basename=$(basename $1) filename=${basename%.*} if [ -d '.max/basex/webapp/max/bundles/'$filename ]; then echo 'Le bundle est déjà installé : .max/basex/webapp/max/bundles/'$filename abort else git clone $1 .max/basex/webapp/max/bundles/$filename if [ $? -eq 0 ]; then .max/basex/bin/basex -u -b bundleUrl="$1" ".max/resources/add-bundle.xq" else echo 'Clonage impossible de '$1 abort fi fi else echo "Seul les URLs de dépôt git sont acceptées" fi } DIRECTORY=$(cd "$(dirname "$0")" && pwd) #get max version if [[ ! -f ${DIRECTORY}/.max/VERSION ]] then MAX_VERSION=$(git rev-parse HEAD)'-dev' else MAX_VERSION=$(cat "${DIRECTORY}/.max/VERSION") fi echo "---------------------------" echo " MaX V2 - $MAX_VERSION" echo "---------------------------" if [[ "$#" -eq 0 ]]; then display_usage; fi; while [[ "$#" -gt 0 ]]; do case $1 in help) display_usage exit 0;; version) echo $MAX_VERSION exit 0;; demo) install_demo exit 0;; run) run exit 0;; clean) clean exit 0;; freeze) freeze exit 0;; feed) feed $2 exit 0;; add) add $2 exit 0;; esac shift done