From d0a9583d228ff0251f76043d223f9c8880a91523 Mon Sep 17 00:00:00 2001 From: qpismont Date: Wed, 12 Nov 2025 22:54:16 +0000 Subject: [PATCH] Add .env and .env.example files; implement development script and Docker connection logic --- .env | 0 .env.example | 13 +++++++++++++ scripts/dev.sh | 38 ++++++++++++++++++++++++++++++++++++++ src/main.rs | 15 ++++++++++++--- 4 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 .env create mode 100644 .env.example create mode 100755 scripts/dev.sh diff --git a/.env b/.env new file mode 100644 index 0000000..e69de29 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..bc841ec --- /dev/null +++ b/.env.example @@ -0,0 +1,13 @@ +# Backup Configuration +BACKUP_FOLDER=/data/volumes +BACKUP_CRON=*/5 * * * * + +# FTP Configuration +FTP_HOST=ftp.example.com +FTP_PORT=21 +FTP_USER=backup_user +FTP_PASSWORD=secret123 +FTP_PATH=/backups + +# Docker Configuration +DOCKER_HOST=unix:///var/run/docker.sock diff --git a/scripts/dev.sh b/scripts/dev.sh new file mode 100755 index 0000000..0f2224b --- /dev/null +++ b/scripts/dev.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +# Couleurs pour les messages +GREEN='\033[0;32m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +echo -e "${GREEN}🐝 Beekeeper Development Script${NC}" + +# VĂ©rifier si le fichier .env existe +if [ ! -f .env ]; then + echo -e "${RED}❌ Fichier .env introuvable${NC}" + echo -e "${YELLOW}CrĂ©ez un fichier .env avec les variables nĂ©cessaires${NC}" + exit 1 +fi + +# Charger les variables d'environnement +echo -e "${GREEN}📋 Chargement des variables d'environnement depuis .env${NC}" +set -a +source .env +set +a + +# VĂ©rifier si cargo-watch est installĂ© +if ! command -v cargo-watch &> /dev/null; then + echo -e "${YELLOW}⚠ cargo-watch n'est pas installĂ©${NC}" + echo -e "${YELLOW}Installation de cargo-watch...${NC}" + cargo install cargo-watch +fi + +# Lancer cargo watch avec hot reload +echo -e "${GREEN}🚀 DĂ©marrage du programme avec hot reload${NC}" +echo -e "${YELLOW}Le programme redĂ©marrera automatiquement lors de modifications${NC}" +echo "" + +cargo watch -x run diff --git a/src/main.rs b/src/main.rs index 7d14633..a0f5daa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,13 +7,22 @@ async fn main() -> anyhow::Result<()> { let folders = list_folders(backup_root_path).await?; - let docker_conn = Docker::connect_with_socket_defaults()?; - let docker_version = docker_conn.version().await?; - println!("Docker version: {:?}", docker_version); + let docker_host = std::env::var("DOCKER_HOST").ok(); + let docker_conn = connect_docker(docker_host).await?; + Ok(()) } +async fn connect_docker(docker_host: Option) -> anyhow::Result { + Ok( + match docker_host { + Some(host) => Docker::connect_with_http(&host, 60, bollard::API_DEFAULT_VERSION)?, + None => Docker::connect_with_socket_defaults()?, + } + ) +} + async fn list_folders(path: &std::path::Path) -> anyhow::Result> { let mut folders = Vec::new(); let mut dir_entries = tokio::fs::read_dir(path).await?;