Newer
Older
istex-enrich-monitoring / lodex.mk
.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}';