73 lines
1.7 KiB
Bash
73 lines
1.7 KiB
Bash
#!/bin/bash
|
|
|
|
echo "📦 Installation de ELOG..."
|
|
|
|
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
|
|
cd ..
|
|
|
|
# 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
|
|
|
|
# Créer une instance ELOG
|
|
mkdir -p elog_instance/logbooks/demo
|
|
|
|
# Générer le fichier mot de passe
|
|
htpasswd -cb elog_instance/elog.passwd robot testpassword
|
|
|
|
# Configuration avec accès restreint
|
|
cat > elog_instance/elogd.cfg <<EOF
|
|
[global]
|
|
port = 8080
|
|
logdir = logbooks
|
|
allowposting = 1
|
|
allowhtml = 1
|
|
List after submit = 0
|
|
|
|
[demo]
|
|
dir = logbooks/demo
|
|
allow = robot
|
|
passwdfile = elog.passwd
|
|
Required Attributes = Author
|
|
Data dir = /usr/local/elog/demo
|
|
EOF
|
|
|
|
# Lancer le serveur
|
|
~/.local/bin/elogd -c elog_instance/elogd.cfg &
|
|
sleep 3
|
|
|
|
# Vérification version
|
|
echo "✅ elogd version:"
|
|
~/.local/bin/elogd -h | head -n 1
|
|
|
|
# Vérification lecture
|
|
echo "📬 Accès test au logbook :"
|
|
curl http://localhost:8080/demo/ || echo "Pas encore de logbook 'demo'"
|
|
|
|
# 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é"
|