Initial commit: Script MD to Print avec Docker
This commit is contained in:
110
Makefile
Normal file
110
Makefile
Normal file
@@ -0,0 +1,110 @@
|
||||
.PHONY: build run shell test clean install uninstall help
|
||||
|
||||
# Variables
|
||||
IMAGE_NAME=md-to-print
|
||||
IMAGE_TAG=latest
|
||||
SCRIPT_NAME=md_to_print.sh
|
||||
INSTALL_DIR=/usr/local/bin
|
||||
CONFIG_DIR=/etc/md-to-print
|
||||
|
||||
# Couleurs
|
||||
GREEN=\033[0;32m
|
||||
YELLOW=\033[1;33m
|
||||
NC=\033[0m
|
||||
|
||||
help:
|
||||
@echo "Commandes disponibles:"
|
||||
@echo " make build - Construire l'image Docker"
|
||||
@echo " make shell - Ouvrir un shell interactif dans le conteneur"
|
||||
@echo " make test - Tester avec un fichier markdown exemple"
|
||||
@echo " make clean - Nettoyer les fichiers générés (PDFs, logs)"
|
||||
@echo " make install - Installer le script localement"
|
||||
@echo " make uninstall - Désinstaller le script"
|
||||
@echo " make help - Afficher cette aide"
|
||||
|
||||
# Construction de l'image Docker
|
||||
build:
|
||||
@echo "$(GREEN)Construction de l'image Docker...$(NC)"
|
||||
docker build -t $(IMAGE_NAME):$(IMAGE_TAG) .
|
||||
@echo "$(GREEN)Image construite avec succès$(NC)"
|
||||
|
||||
# Exécution interactive avec shell
|
||||
shell: build
|
||||
@echo "$(GREEN)Ouverture d'un shell dans le conteneur...$(NC)"
|
||||
docker run --rm -it \
|
||||
-v $(PWD)/documents:/workspace/documents:ro \
|
||||
-v $(PWD)/output:/workspace/output \
|
||||
-v $(PWD)/logs:/workspace/logs \
|
||||
--network host \
|
||||
$(IMAGE_NAME):$(IMAGE_TAG) \
|
||||
/bin/bash
|
||||
|
||||
# Test avec un fichier exemple
|
||||
test: build
|
||||
@echo "$(GREEN)Création d'un fichier markdown de test...$(NC)"
|
||||
@mkdir -p documents output logs
|
||||
@cat > documents/test.md << 'EOF'
|
||||
# Test Markdown
|
||||
|
||||
Ceci est un test de conversion Markdown vers PDF.
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
- Conversion automatique
|
||||
- Impression
|
||||
- Prévisualisation
|
||||
- Options avancées
|
||||
|
||||
## Exemple de code
|
||||
|
||||
\`\`\`bash
|
||||
echo "Hello World"
|
||||
\`\`\`
|
||||
|
||||
## Liste numérotée
|
||||
|
||||
1. Premier élément
|
||||
2. Deuxième élément
|
||||
3. Troisième élément
|
||||
|
||||
**Texte en gras** et *texte en italique*.
|
||||
EOF
|
||||
@echo "$(GREEN)Exécution du test...$(NC)"
|
||||
docker run --rm -it \
|
||||
-v $(PWD)/documents:/workspace/documents:ro \
|
||||
-v $(PWD)/output:/workspace/output \
|
||||
-v $(PWD)/logs:/workspace/logs \
|
||||
--network host \
|
||||
$(IMAGE_NAME):$(IMAGE_TAG) \
|
||||
/workspace/documents/test.md --preview --keep-pdf --verbose
|
||||
@echo "$(GREEN)Test terminé. Vérifiez le fichier output/test.pdf$(NC)"
|
||||
|
||||
# Nettoyage
|
||||
clean:
|
||||
@echo "$(YELLOW)Nettoyage des fichiers générés...$(NC)"
|
||||
@rm -rf output/*.pdf logs/*.log 2>/dev/null || true
|
||||
@rm -f documents/test.md 2>/dev/null || true
|
||||
@echo "$(GREEN)Nettoyage terminé$(NC)"
|
||||
|
||||
# Installation locale
|
||||
install:
|
||||
@echo "$(GREEN)Installation du script...$(NC)"
|
||||
@if [ ! -f "$(SCRIPT_NAME)" ]; then \
|
||||
echo "Erreur: $(SCRIPT_NAME) introuvable"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@sudo mkdir -p $(INSTALL_DIR) $(CONFIG_DIR)
|
||||
@sudo cp $(SCRIPT_NAME) $(INSTALL_DIR)/$(SCRIPT_NAME)
|
||||
@sudo chmod +x $(INSTALL_DIR)/$(SCRIPT_NAME)
|
||||
@sudo cp config.example.conf $(CONFIG_DIR)/config.example.conf
|
||||
@echo "$(GREEN)Script installé dans $(INSTALL_DIR)/$(SCRIPT_NAME)$(NC)"
|
||||
@echo "$(GREEN)Configuration exemple dans $(CONFIG_DIR)/config.example.conf$(NC)"
|
||||
@echo "$(YELLOW)Créez $(CONFIG_DIR)/config.conf pour personnaliser la configuration$(NC)"
|
||||
|
||||
# Désinstallation
|
||||
uninstall:
|
||||
@echo "$(YELLOW)Désinstallation du script...$(NC)"
|
||||
@sudo rm -f $(INSTALL_DIR)/$(SCRIPT_NAME)
|
||||
@sudo rm -rf $(CONFIG_DIR)
|
||||
@echo "$(GREEN)Désinstallation terminée$(NC)"
|
||||
|
||||
Reference in New Issue
Block a user