From 69bca546736f114e57fbc79f5ec0d15deca53233 Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Mon, 26 Aug 2019 16:05:26 +0200
Subject: [PATCH] Show logs after upgrade

---
 wol/scripts/wakeonlanservice.sh |  2 ++
 wol/www/index.php               | 15 ++++++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/wol/scripts/wakeonlanservice.sh b/wol/scripts/wakeonlanservice.sh
index 678c66a..32c1e98 100755
--- a/wol/scripts/wakeonlanservice.sh
+++ b/wol/scripts/wakeonlanservice.sh
@@ -79,6 +79,8 @@ do
         then
             answer $logfile
         else
+            # Choose last log file with desired host
+            logfile=$(grep -l $name /var/log/upgrade_all.sh_* | sort | tail -n 1)
             tempfile="/tmp/$$"
             # Extract the pertinent part of the log
             awk 'BEGIN{IN=0} /Begin host/{if($4=="'$name'"){IN=1}} {if(IN){print $0}} /End host/{if($4=="'$name'"){IN=0}}' \
diff --git a/wol/www/index.php b/wol/www/index.php
index fbc6c97..e22934a 100644
--- a/wol/www/index.php
+++ b/wol/www/index.php
@@ -235,7 +235,13 @@ if(!isset($action)){
                 $lines = array();
                 exec("../scripts/actions.sh ".escapeshellarg($action)." "
                     .escapeshellarg($name), $lines, $code);
-                echo "<p>Action effectuée, code : $code</p>";
+                echo "<p>Action '$action' effectuée, code : $code</p>";
+                // Retrieve logs
+                if(preg_match('/^upgrade/', $action) && $code == 0 ){
+                    echo "<p>Les logs ne se rafraichissent pas tous seuls, vous pouvez utiliser le bouton prévu à cet effet</p>";
+                    exec("../scripts/actions.sh getLog "
+                        .escapeshellarg($name), $lines, $code);
+                }
                 if(!empty($lines)){
                     echo "<pre>";
                     foreach($lines as $line){
@@ -245,6 +251,13 @@ if(!isset($action)){
                 }else{
                     echo "<p>Erreur : pas de réponse</p>";
                 }
+                ?>
+                <form action="index.php" method="post">
+                <input type="hidden" name="action" value="getLog">
+                <input type="hidden"   name="name" value="<?php echo $name; ?>">
+                <input type="submit" value="Rafraichir les logs" title="Rafraichir les logs">
+                </form>
+                <?
             }
         }
     }
-- 
GitLab