#!/bin/bash # Script de construction des modules 4NK_node et des projets 4NK_node set -e echo "🏗️ Construction des modules 4NK_node et projets 4NK_node..." # Fonction pour construire un module spécifique build_module() { local module_name="$1" local module_dir="modules/$module_name" if [ ! -d "$module_dir" ]; then echo "❌ Module $module_name non trouvé dans $module_dir" return 1 fi echo "🔨 Construction de $module_name..." # Construire l'image Docker docker build -t "4nk-node-$module_name:latest" "$module_dir" if [ $? -eq 0 ]; then echo "✅ Module $module_name construit avec succès" else echo "❌ Échec de la construction du module $module_name" return 1 fi } build_project() { local project_name="$1" local project_dir="projects/$project_name" if [ ! -d "$project_dir" ]; then echo "❌ Project $project_name non trouvé dans $project_dir" return 1 fi echo "🔨 Construction de $project_name (project)..." docker build -t "4nk-node-$project_name:latest" "$project_dir" if [ $? -eq 0 ]; then echo "✅ Project $project_name construit avec succès" else echo "❌ Échec de la construction du project $project_name" return 1 fi } # Construction de tous les modules si aucun argument n'est fourni if [ $# -eq 0 ]; then echo "📦 Construction de tous les modules et projets..." # Modules de base (existence check pour éviter les erreurs sur des dépôts partiels) if [ -d "modules/tor" ]; then build_module "tor" else echo "⚠️ Tor module absent, skipping" fi if [ -d "modules/bitcoin" ]; then build_module "bitcoin" else echo "⚠️ Bitcoin module absent, skipping" fi # Modules applicatifs if [ -d "modules/blindbit" ]; then build_module "blindbit"; else echo "⚠️ blindbit module absent"; fi if [ -d "modules/sdk_relay1" ]; then build_module "sdk_relay1"; fi if [ -d "modules/sdk_relay2" ]; then build_module "sdk_relay2"; fi if [ -d "modules/sdk_relay3" ]; then build_module "sdk_relay3"; fi if [ -d "modules/sdk_storage" ]; then build_module "sdk_storage"; fi if [ -d "modules/sdk_signer" ]; then build_module "sdk_signer"; fi if [ -d "modules/ihm_client" ]; then build_module "ihm_client"; fi # Projets nouvellement ajoutés (Le coffre) # Le coffre-back et le coffre-front dans 4NK_node/projects if [ -d "projects/lecoffre-back" ]; then build_project "lecoffre-back"; else echo "⚠️ lecoffre-back project absent"; fi if [ -d "projects/lecoffre-front" ]; then build_project "lecoffre-front"; else echo "⚠️ lecoffre-front project absent"; fi echo "🎉 Tous les modules et projets ont été construits !" else # Construction d'un module ou d'un projet spécifique if [ -d "modules/$1" ]; then build_module "$1" elif [ -d "projects/$1" ]; then build_project "$1" else echo "Module ou projet inconnu: $1" exit 1 fi fi