Update install_elog.sh
Run CI Tests / test (push) Successful in 1m30s

This commit is contained in:
2025-08-07 12:45:24 +02:00
parent c31072be1b
commit 02c3b857f6
+54 -34
View File
@@ -1,49 +1,69 @@
#!/bin/bash
# --------- CONFIGURATION ---------
ELOG_VERSION="2.7.1"
ELOG_DIR="/usr/local/elog"
ELOG_URL="https://midas.psi.ch/elog/download/elog-${ELOG_VERSION}.tar.gz"
echo "📦 Installation de ELOG..."
# --------- INSTALL ELOG SERVER ---------
echo "📦 Téléchargement et installation de ELOG ${ELOG_VERSION}..."
mkdir -p /tmp/elog_install
cd /tmp/elog_install
wget ${ELOG_URL} -O elog.tar.gz
tar -xzf elog.tar.gz
cd elog-${ELOG_VERSION}
sudo apt update
sudo apt install -y make gcc wget tar curl apache2-utils
# Télécharger ELOG
wget https://downloads.sourceforge.net/project/elog/elog/2.7.1/elog-2.7.1-1.tar.gz
tar -xvzf elog-2.7.1-1.tar.gz
cd elog-2.7.1
make
sudo make install
cd ..
# --------- SETUP REPERTOIRES ---------
echo "⚙️ Configuration des dossiers d ELOG..."
# Installer dans ~/.local/bin
mkdir -p ~/.local/bin
cp elog-2.7.1/elogd ~/.local/bin
export PATH="$HOME/.local/bin:$PATH"
echo "$HOME/.local/bin" >> $GITHUB_PATH
sudo mkdir -p ${ELOG_DIR}/logbooks/demo
sudo mkdir -p ${ELOG_DIR}/themes
sudo mkdir -p ${ELOG_DIR}/resources
# Créer une instance ELOG
mkdir -p elog_instance/logbooks/demo
sudo cp elogd.cfg ${ELOG_DIR}/elogd.cfg
sudo cp elogd ${ELOG_DIR}/elogd
# Générer le fichier mot de passe
htpasswd -cb elog_instance/elog.passwd robot testpassword
# --------- LANCER LE SERVEUR ---------
echo "🚀 Lancement du serveur ELOG..."
# Configuration avec accès restreint
cat > elog_instance/elogd.cfg <<EOF
[global]
port = 8080
logdir = logbooks
allowposting = 1
allowhtml = 1
cd ${ELOG_DIR}
./elogd ${ELOG_DIR}/elogd.cfg &
[demo]
dir = logbooks/demo
allow = robot
passwdfile = elog.passwd
EOF
sleep 2 # Laisser le serveur démarrer
# Lancer le serveur
~/.local/bin/elogd -c elog_instance/elogd.cfg &
sleep 3
# --------- CREATION DU LOGBOOK ---------
echo "📓 Création du logbook 'demo'..."
# Vérification version
echo "✅ elogd version:"
~/.local/bin/elogd -h | head -n 1
curl -s -X POST "http://localhost:8080" \
-F "cmd=Create" \
-F "exp=demo" \
-F "Title=Demo Logbook" \
-F "Category=General"
# Vérification lecture
echo "📬 Accès test au logbook :"
curl http://localhost:8080/demo/ || echo "Pas encore de logbook 'demo'"
echo "✅ Serveur ELOG lancé avec succès sur http://localhost:8080"
# Test d'insertion d'une entrée (PUT)
echo "📝 Test elog.put (via curl)..."
response=$(curl -s -o /dev/null -w "%{http_code}" -u robot:testpassword \
-F "Author=robot" \
-F "Subject=Test via script" \
-F "Category=General" \
-F "Type=Note" \
-F "Text=Message envoyé automatiquement depuis le script install_elog.sh" \
"http://localhost:8080/demo/?cmd=Submit")
if [ "$response" == "200" ]; then
echo "✅ Insertion réussie dans le logbook demo"
else
echo "❌ Échec de l'insertion (code HTTP: $response)"
fi
echo "✅ ELOG setup terminé"