From 4a771baa7d9fd70e8f3cf43f6ddd6d6df8fef5dc Mon Sep 17 00:00:00 2001 From: Debian Date: Thu, 28 Aug 2025 09:49:34 +0000 Subject: [PATCH] init --- .gitignore | 12 ++++++++++++ docs/modules.md | 37 +++++++++++++++++++++++++++++++++++++ repos.csv | 11 +++++++++++ update_repos.sh | 38 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 .gitignore create mode 100644 docs/modules.md create mode 100644 repos.csv create mode 100755 update_repos.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..52c9f92 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.idea/ +.vscode/ +4NK_node/ +4NK_template/ +4NK_wallet/ +ihm_client/ +sdk_client/ +sdk_common/ +sdk_relay/ +sdk_signer/ +sdk_signer_client/ +sdk_storage/ diff --git a/docs/modules.md b/docs/modules.md new file mode 100644 index 0000000..f0497df --- /dev/null +++ b/docs/modules.md @@ -0,0 +1,37 @@ +# Modules Docker (4NK_dev) + +## 4NK_node +- S’appuie sur le `docker-compose.yml` existant dans `4NK_node/`. +- Scripts: + - `modules/4NK_node/build.sh` : construit les services avec `docker compose build`. + - `modules/4NK_node/up.sh` : démarre les services en détaché. + - `modules/4NK_node/down.sh` : arrête et nettoie les services. + - `modules/4NK_node/logs.sh` : affiche les logs (suivi). + - `modules/4NK_node/clean.sh` : down -v + prune d’images. +- Version/tag: lit `4NK_node/VERSION` si présent, sinon utilise `git describe` pour définir `COMPOSE_PROJECT_NAME`. + +## 4NK_template +- Dockerfile multi-stage Node fourni dans `modules/4NK_template/Dockerfile`. +- Scripts: + - `modules/4NK_template/build.sh` : build de l’image à partir de `4NK_template/`. + - `modules/4NK_template/run.sh` : exécute l’image, mappe le port 3000. + - `modules/4NK_template/clean.sh` : supprime l’image construite et fait un prune. +- Version/tag: lit `4NK_template/VERSION` si présent, sinon `git describe`. + +## Prérequis +- Docker et Docker Compose (plugin) installés. + +## Utilisation (séquentielle) +1. Construire 4NK_node + - `bash modules/4NK_node/build.sh` +2. Démarrer 4NK_node + - `bash modules/4NK_node/up.sh` +3. Construire 4NK_template + - `bash modules/4NK_template/build.sh` +4. Lancer 4NK_template + - `bash modules/4NK_template/run.sh` +5. Logs 4NK_node + - `bash modules/4NK_node/logs.sh` +6. Arrêt 4NK_node + - `bash modules/4NK_node/down.sh` + diff --git a/repos.csv b/repos.csv new file mode 100644 index 0000000..1c1f02c --- /dev/null +++ b/repos.csv @@ -0,0 +1,11 @@ +name,url,type,target,directory +sdk_storage,https://git.4nkweb.com/4nk/sdk_storage.git,branch,docker-support,sdk_storage +sdk_signer_client,https://git.4nkweb.com/4nk/sdk_signer_client.git,create_from,master->docker-support,sdk_signer_client +sdk_signer,https://git.4nkweb.com/4nk/sdk_signer.git,branch,docker-support,sdk_signer +ihm_client,https://git.4nkweb.com/4nk/ihm_client.git,branch,docker-support,ihm_client +sdk_relay,https://git.4nkweb.com/4nk/sdk_relay.git,branch,docker-support,sdk_relay +sdk_common,https://git.4nkweb.com/4nk/sdk_common.git,branch,docker-support,sdk_common +4NK_wallet,https://git.4nkweb.com/4nk/4NK_wallet.git,create_from,main->docker-support,4NK_wallet +sdk_client,https://git.4nkweb.com/4nk/sdk_client.git,branch,docker-support,sdk_client +4NK_template,https://git.4nkweb.com/4nk/4NK_template.git,branch,main,4NK_template +4NK_node,git@git.4nkweb.com:4nk/4NK_node.git,branch,main,4NK_node diff --git a/update_repos.sh b/update_repos.sh new file mode 100755 index 0000000..1ce9a0b --- /dev/null +++ b/update_repos.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +set -euo pipefail +CSV_FILE="repos.csv" +IFS=, +while read -r name url type target directory; do + if [ "$name" = "name" ]; then continue; fi + echo "\n[Repo] $name -> $directory" + if [ ! -d "$directory" ]; then + echo "[Clone] $url" + git clone --progress "$url" "$directory" || true + fi + echo "[Fetch] $directory" + git -C "$directory" fetch --all --prune --tags --progress || true + case "$type" in + branch) + echo "[Checkout] $target" + if git -C "$directory" show-ref --verify --quiet "refs/remotes/origin/$target"; then + git -C "$directory" checkout "$target" 2>/dev/null || git -C "$directory" checkout -B "$target" "origin/$target" + git -C "$directory" reset --hard "origin/$target" + else + echo "[Warn] Branche $target introuvable pour $name" + fi + ;; + create_from) + base="${target%%->*}" + newb="${target##*->}" + echo "[Create] $newb depuis $base" + if git -C "$directory" show-ref --verify --quiet "refs/remotes/origin/$base"; then + git -C "$directory" checkout -B "$newb" "origin/$base" + else + echo "[Error] Base $base introuvable pour $name" + fi + ;; + *) + echo "[Warn] Type inconnu: $type" + ;; + esac +done < "$CSV_FILE"