.ONESHELL:
SHELL = /usr/bin/bash
# Chargement des variables d'environnement
include .env
export
# S'authentifier sur une instance Lodex
lodex-auth:
curl -c /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/login" \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--data-raw '{"username":"'"$$LODEX_USER"'","password":"'"$$LODEX_PASSWORD"'"}' | jq -r '.token'
# Sauvegarder les template d'une instance Lodex
lodex-backup-template:
curl -b /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/field/export" \
-X GET \
-H "Authorization: Bearer $$(make -s lodex-auth)" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--output /tmp/template.tar
# Sauvegarder les données d'une isntance Lodex
lodex-backup-data:
curl -b /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/dump" \
-X GET \
-H "Authorization: Bearer $$(make -s lodex-auth)" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
--output /tmp/data.jsonl
# Sauvegarder une instance lodex
lodex-backup: lodex-backup-data lodex-backup-template
# Créer un répertoire temporaire pour la sauvegarde
mkdir -p ./backup
# Créer un nom de fichier avec la date du jour
BACKUP_FILE=./backup/backup_$(shell date +%Y-%m-%d).zip
# Ajouter les fichiers à l'archive zip avec la date du jour
zip -j -r $$BACKUP_FILE /tmp/data.jsonl /tmp/template.tar
# Supprimer les fichiers originaux après sauvegarde
rm /tmp/data.jsonl /tmp/template.tar
# Supprimer les données d'une instance Lodex
lodex-delete-instance-data: lodex-backup
curl -b /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/dataset" \
-X DELETE \
-H "Authorization: Bearer $$(make -s lodex-auth)" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'
# Importer un template dans une instance Lodex
lodex-import-template:
curl -b /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/field/import" \
-X POST \
-H "Authorization: Bearer $$(make -s lodex-auth)" \
-F "template=@./lodex/template.tar"
# Importer les données dans une instance Lodex depuis l'URL publique des données
lodex-import-data:
curl -b /tmp/lodex-cookies.txt "$$LODEX_INSTANCE/api/upload/url" \
-X POST \
-H 'Accept: application/json' \
-H "Authorization: Bearer $$(make -s lodex-auth)" \
-H 'Content-Type: application/json' \
--data-raw '{"url":"https://gitbucket.inist.fr/eon/istex-enrich-monitoring/raw/master/lodex/data.jsonl","loaderName":"json-lines","customLoader":null}';