]> hydra-www.ietfng.org Git - acmetensortoys-snakecontrol/commitdiff
lcdproc-remind: only show screen if reminders exist
authorNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sat, 16 Dec 2017 21:27:50 +0000 (16:27 -0500)
committerNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sun, 11 Feb 2018 00:05:52 +0000 (19:05 -0500)
bin/lcdproc-remind.expect

index d983259619f0f4f9bafae9e4bbbd43c5df804e7d..034da27d4d6cc572335a843b3d31c8ddad16250c 100755 (executable)
@@ -2,23 +2,42 @@
 
 package require lcdproclib
 
+set hasscreen 0
 set lcdsid [::lcdproclib::spawnlcd "localhost" "13666"]
 ::lcdproclib::cmd ${lcdsid} "client_set -name remind"
 
-::lcdproclib::cmd ${lcdsid} "screen_add 1"
-::lcdproclib::cmd ${lcdsid} "screen_set 1 -name Reminders"
-::lcdproclib::cmd ${lcdsid} "screen_set 1 -priority hidden"
-::lcdproclib::cmd ${lcdsid} "screen_set 1 -cursor off"
+proc scradd {} {
+    variable lcdsid
+    variable hasscreen
 
-::lcdproclib::cmd ${lcdsid} "widget_add 1 ti title"
-::lcdproclib::cmd ${lcdsid} "widget_set 1 ti Reminders"
+    if {$hasscreen} { return } 
 
-::lcdproclib::cmd ${lcdsid} "widget_add 1 v1 string"
-::lcdproclib::cmd ${lcdsid} "widget_add 1 v2 string"
-::lcdproclib::cmd ${lcdsid} "widget_add 1 v3 string"
+    ::lcdproclib::cmd ${lcdsid} "screen_add 1"
+    ::lcdproclib::cmd ${lcdsid} "screen_set 1 -name Reminders"
+    ::lcdproclib::cmd ${lcdsid} "screen_set 1 -priority hidden"
+    ::lcdproclib::cmd ${lcdsid} "screen_set 1 -cursor off"
+    
+    ::lcdproclib::cmd ${lcdsid} "widget_add 1 ti title"
+    ::lcdproclib::cmd ${lcdsid} "widget_set 1 ti Reminders"
+    
+    ::lcdproclib::cmd ${lcdsid} "widget_add 1 v1 string"
+    ::lcdproclib::cmd ${lcdsid} "widget_add 1 v2 string"
+    ::lcdproclib::cmd ${lcdsid} "widget_add 1 v3 string"
+    
+    ::lcdproclib::cmd ${lcdsid} "screen_set 1 -priority info"
 
-::lcdproclib::cmd ${lcdsid} "screen_set 1 -priority info"
+    set hasscreen 1
+}
+
+proc scrdel {} {
+    variable lcdsid
+    variable hasscreen
 
+    if {[expr {!$hasscreen}]} { return } 
+
+    ::lcdproclib::cmd ${lcdsid} "screen_del 1"
+    set hasscreen 0
+}
 
 proc reload {lcdsid filename} {
   try {
@@ -29,10 +48,19 @@ proc reload {lcdsid filename} {
     return
   }
 
-  ::lcdproclib::cmd ${lcdsid} "widget_set 1 ti {[gets $fp]}"
-  ::lcdproclib::cmd ${lcdsid} "widget_set 1 v1 1 2 {[gets $fp]}"
-  ::lcdproclib::cmd ${lcdsid} "widget_set 1 v2 1 3 {[gets $fp]}"
-  ::lcdproclib::cmd ${lcdsid} "widget_set 1 v3 1 4 {[gets $fp]}"
+  set line1 [gets $fp]
+
+  if {   [string equal "$line1" ""]
+      || [string equal -nocase "$line1" "No Reminders."]} {
+    scrdel
+    return
+  } else {
+    scradd
+    ::lcdproclib::cmd ${lcdsid} "widget_set 1 ti {$line1}"
+    ::lcdproclib::cmd ${lcdsid} "widget_set 1 v1 1 2 {[gets $fp]}"
+    ::lcdproclib::cmd ${lcdsid} "widget_set 1 v2 1 3 {[gets $fp]}"
+    ::lcdproclib::cmd ${lcdsid} "widget_set 1 v3 1 4 {[gets $fp]}"
+  }
 
   close ${fp}
 }