feat(v2.0.3): Marchés hybrides et améliorations multiples
Fonctionnalités principales : 1. Marchés hybrides - Onglet Mercurial - Ajout onglet Mercurial avec style distinct (vert, gras, blanc) - Affichage des produits mercuriaux pour marchés hybrides - Filtrage automatique des produits "Hors Marché 999" - Documentation Phase 2 avec CAS 1 et CAS 2 de marchés hybrides - Règles métier pour validation différenciée (devis 100% mercurial vs mixte) 2. Corrections bugs - Fix flag chkChange sur onglet "Sélection Produits" (callback asynchrone) - Plus d'alerte intempestive après sauvegarde des produits 3. Outils de déploiement - Nouveau script deploy-file.sh pour déploiement unitaire (DEV/PROD) - Amélioration deploy-cleo.sh 4. Gestion multi-contacts (v2.0.3) - Contrôleur AJAX cjxcontacts.php - Script migration clients_contacts - Documentation complète 5. Documentation - Mise à jour TODO.md avec Phase 2 marchés hybrides - Mise à jour README.md v2.0.3 - Ajout RULES.md - Ajout migration_clients_contacts.sql 6. Nettoyage - Suppression fichiers obsolètes (conf_new.php, conf_old.php, uof_linet_20250911.sql) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
133
deploy-file.sh
Executable file
133
deploy-file.sh
Executable file
@@ -0,0 +1,133 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script de déploiement d'un fichier unique
|
||||
# Version: 1.0
|
||||
# Usage: ./deploy-file.sh <chemin_fichier> [pra]
|
||||
# <chemin_fichier> : Chemin relatif du fichier à déployer (ex: pub/res/js/jdevis.js)
|
||||
# pra (optionnel) : Déploie vers PROD (IN4/pra-front), sinon déploie vers DEV (IN3/dva-front)
|
||||
|
||||
# Vérifier les paramètres
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <chemin_fichier> [pra]"
|
||||
echo "Exemple: $0 pub/res/js/jdevis.js"
|
||||
echo "Exemple: $0 pub/res/js/jdevis.js pra"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE_PATH="$1"
|
||||
DEPLOY_MODE=${2:-dev}
|
||||
|
||||
# Vérifier que le fichier existe localement
|
||||
if [ ! -f "$FILE_PATH" ]; then
|
||||
echo "Erreur: Le fichier '$FILE_PATH' n'existe pas"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Détecter le mode de déploiement
|
||||
if [ "$DEPLOY_MODE" = "pra" ]; then
|
||||
# Configuration PROD : IN4/pra-front
|
||||
TARGET_HOST=11.1.2.14
|
||||
TARGET_SSH_USER=root
|
||||
TARGET_SSH_PORT=22
|
||||
TARGET_SSH_KEY=/home/pierre/.ssh/id_rsa_mbpi
|
||||
TARGET_CT_PROJECT=default
|
||||
TARGET_CT_NAME=pra-front
|
||||
TARGET_DEPLOY_DIR=/var/www/cleo
|
||||
ENV_NAME="PRODUCTION"
|
||||
else
|
||||
# Configuration DEV : IN3/dva-front
|
||||
TARGET_HOST=195.154.80.116
|
||||
TARGET_SSH_USER=root
|
||||
TARGET_SSH_PORT=22
|
||||
TARGET_SSH_KEY=/home/pierre/.ssh/id_rsa_mbpi
|
||||
TARGET_CT_PROJECT=default
|
||||
TARGET_CT_NAME=dva-front
|
||||
TARGET_DEPLOY_DIR=/var/www/cleo
|
||||
ENV_NAME="DÉVELOPPEMENT"
|
||||
fi
|
||||
|
||||
# Propriétaire et groupe
|
||||
OWNER=nobody
|
||||
GROUP=nginx
|
||||
|
||||
# Couleurs
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Options SSH
|
||||
TARGET_SSH_OPTS="-p $TARGET_SSH_PORT -i $TARGET_SSH_KEY"
|
||||
TARGET_SCP_OPTS="-P $TARGET_SSH_PORT -i $TARGET_SSH_KEY"
|
||||
|
||||
echo -e "${GREEN}=== Déploiement fichier unique ===${NC}"
|
||||
echo "Fichier: $FILE_PATH"
|
||||
echo "Environnement: $ENV_NAME ($TARGET_CT_NAME)"
|
||||
echo "Destination: $TARGET_DEPLOY_DIR/$FILE_PATH"
|
||||
echo "=================================="
|
||||
|
||||
# 1. Copier le fichier vers le serveur hôte
|
||||
echo -e "${YELLOW}1. Transfert du fichier vers le serveur...${NC}"
|
||||
scp $TARGET_SCP_OPTS "$FILE_PATH" $TARGET_SSH_USER@$TARGET_HOST:/tmp/deploy-file.tmp
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur lors du transfert${NC}"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}✓ Fichier transféré${NC}"
|
||||
|
||||
# 2. Déployer dans le conteneur
|
||||
echo -e "${YELLOW}2. Déploiement dans le conteneur...${NC}"
|
||||
|
||||
# Déterminer les permissions selon le type de fichier
|
||||
if [[ "$FILE_PATH" == ".env"* ]]; then
|
||||
FILE_PERMS=640
|
||||
else
|
||||
FILE_PERMS=644
|
||||
fi
|
||||
|
||||
TARGET_SCRIPT="
|
||||
set -e
|
||||
incus project switch $TARGET_CT_PROJECT
|
||||
|
||||
# Créer le répertoire parent si nécessaire
|
||||
incus exec $TARGET_CT_NAME -- sh -c 'mkdir -p \$(dirname $TARGET_DEPLOY_DIR/$FILE_PATH)'
|
||||
|
||||
# Transférer le fichier dans le conteneur
|
||||
incus file push /tmp/deploy-file.tmp $TARGET_CT_NAME$TARGET_DEPLOY_DIR/$FILE_PATH
|
||||
|
||||
# Appliquer les permissions
|
||||
incus exec $TARGET_CT_NAME -- sh -c '
|
||||
chown $OWNER:$GROUP $TARGET_DEPLOY_DIR/$FILE_PATH && \
|
||||
chmod $FILE_PERMS $TARGET_DEPLOY_DIR/$FILE_PATH
|
||||
'
|
||||
|
||||
# Nettoyer
|
||||
rm -f /tmp/deploy-file.tmp
|
||||
|
||||
echo 'Déploiement terminé!'
|
||||
"
|
||||
|
||||
ssh $TARGET_SSH_OPTS $TARGET_SSH_USER@$TARGET_HOST "$TARGET_SCRIPT"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur lors du déploiement${NC}"
|
||||
ssh $TARGET_SSH_OPTS $TARGET_SSH_USER@$TARGET_HOST "rm -f /tmp/deploy-file.tmp"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Fichier déployé avec succès${NC}"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}===================================================${NC}"
|
||||
echo -e "${GREEN} Déploiement terminé avec succès ! ${NC}"
|
||||
echo -e "${GREEN}===================================================${NC}"
|
||||
if [ "$DEPLOY_MODE" = "pra" ]; then
|
||||
echo "Site: https://cleo.unikoffice.com"
|
||||
echo "Environnement: PRODUCTION (pra-front)"
|
||||
else
|
||||
echo "Site: http://dcleo.unikoffice.com"
|
||||
echo "Environnement: DÉVELOPPEMENT (dva-front)"
|
||||
fi
|
||||
echo "Fichier: $TARGET_DEPLOY_DIR/$FILE_PATH"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user