bin/heat: Fix missing: heat.schedule
authorJan Kratochvil <jan@jankratochvil.net>
Thu, 10 Feb 2022 20:38:43 +0000 (21:38 +0100)
committerJan Kratochvil <jan@jankratochvil.net>
Thu, 10 Feb 2022 20:38:43 +0000 (21:38 +0100)
bin/heat: message: +Print states for: change refused

bin/heat

index bab4730..74bbbab 100755 (executable)
--- a/bin/heat
+++ b/bin/heat
@@ -78,7 +78,8 @@ sub schedulenext($) {
   die "No bestnext" if !defined $bestnext;
   return [$prev,$next];
 }
-$finishline=[schedulenext($minutes)->[1]];
+$finishline=schedulenext($minutes);
+$finishline=[$finishline->[1]] if $finishline;
 my $silent=shift if ($ARGV[0]||"") eq "-s";
 logmsg "command: ".join(" ",@ARGV) if !$silent&&@ARGV;
 sub info($) {
@@ -128,10 +129,13 @@ sub printminutes($) {
 }
 if ($silent) {
   if (!defined $newstate&&!defined $reset&&%schedule) {
-    my $prev=schedulenext($minutes)->[0];
-    if ($prev=~m{^@{[ printminutes $minutes ]} (.)\n$}) {
-      $newstate=$1;
-      logmsg "scheduled: $prev";
+    my $prev=schedulenext($minutes);
+    if ($prev) {
+      my $prev=$prev->[0];
+      if ($prev=~m{^@{[ printminutes $minutes ]} (.)\n$}) {
+       $newstate=$1;
+       logmsg "scheduled: $prev";
+      }
     }
   }
   $newstate=$state if !defined $newstate;
@@ -147,7 +151,7 @@ sub setstate() {
   logmsg "$state->$newstate" if $state ne $newstate;
   if ($newstate ne "s") {
     my $pid=readfile "pidof -x dnf;true|";
-    die "\nchange refused: dnf running: $pid" if $pid;
+    die "\n".printminutes($minutes)." change $state".($state eq $newstate?"":"->$newstate")." refused: dnf running: $pid" if $pid;
   }
   my $both={"s"=>[0,0],"0"=>[1,0],"1"=>[1,1]}->{$newstate};
   spawn "$usbrelay 1 ".$both->[0];
@@ -160,7 +164,8 @@ if (!defined $newreset) {
   setstate;
   if (!$silent&&defined $reset) {
     unlink_resetfile;
-    $finishline=[schedulenext($minutes)->[1]];
+    $finishline=schedulenext($minutes);
+    $finishline=[$finishline->[1]] if $finishline;
   }
   finish;
 }