From 70452c0f22611964fd88d79e13381cdc7d69cdf3 Mon Sep 17 00:00:00 2001
From: Jens Nolte <jens@nightmarestudio.de>
Date: Wed, 27 Nov 2019 17:20:46 +0100
Subject: [PATCH] Add update indicator option (--indicator|-i)

---
 src/QBar/Cli.hs    | 4 +++-
 src/QBar/Server.hs | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/QBar/Cli.hs b/src/QBar/Cli.hs
index 294dfe8..e4d522b 100644
--- a/src/QBar/Cli.hs
+++ b/src/QBar/Cli.hs
@@ -16,6 +16,7 @@ barCommandParser = hsubparser
 
 data MainOptions = MainOptions {
   verbose :: Bool,
+  indicator :: Bool,
   socketLocation :: Maybe T.Text,
   barCommand :: BarCommand
 }
@@ -23,9 +24,10 @@ data MainOptions = MainOptions {
 mainOptionsParser :: Parser MainOptions
 mainOptionsParser = do
   verbose <- switch $ long "verbose" <> short 'v' <> help "Print more diagnostic output to stderr (including a copy of every bar update)."
+  indicator <- switch $ long "indicator" <> short 'i' <> help "Show render indicator."
   socketLocation <- optional $ strOption $ long "socket" <> short 's' <> metavar "SOCKET" <> help "Control socket location. By default determined by WAYLAND_SOCKET location."
   barCommand <- barCommandParser
-  return MainOptions {verbose, socketLocation, barCommand}
+  return MainOptions {verbose, indicator, socketLocation, barCommand}
 
 parser :: ParserInfo MainOptions
 parser = info (mainOptionsParser <**> helper)
diff --git a/src/QBar/Server.hs b/src/QBar/Server.hs
index efc1ce6..8828796 100644
--- a/src/QBar/Server.hs
+++ b/src/QBar/Server.hs
@@ -172,7 +172,7 @@ runBarConfiguration generateBarConfig options = do
   let initialBlocks = [date]
 
   -- Attach spinner indicator when verbose flag is set
-  let initialBlocks' = if verbose options then initialBlocks <> [createBlock "*"] else initialBlocks
+  let initialBlocks' = if indicator options then initialBlocks <> [createBlock "*"] else initialBlocks
 
   -- Render initial time block so the bar is not empty after startup
   initialOutput <- renderLine options handle initialBlockFilter initialBlocks' ""
@@ -182,7 +182,7 @@ runBarConfiguration generateBarConfig options = do
   blockProducers <- generateBarConfig barUpdateChannel
 
   -- Attach spinner indicator when verbose flag is set
-  let blockProducers' = if verbose options then blockProducers <> [renderIndicator] else blockProducers
+  let blockProducers' = if indicator options then  (renderIndicator:blockProducers) else blockProducers
 
   -- Create channel to send new block producers to render loop
   newBlockProducers <- newTChanIO
-- 
GitLab