avoid showing json lists of remotes when not in json mode
This commit is contained in:
parent
cb5dacfd40
commit
d1dd40c49b
3 changed files with 15 additions and 6 deletions
|
@ -19,12 +19,14 @@ module Messages (
|
||||||
showErr,
|
showErr,
|
||||||
warning,
|
warning,
|
||||||
indent,
|
indent,
|
||||||
|
maybeShowJSON,
|
||||||
setupConsole
|
setupConsole
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad.State (liftIO)
|
import Control.Monad.State (liftIO)
|
||||||
import System.IO
|
import System.IO
|
||||||
import Data.String.Utils
|
import Data.String.Utils
|
||||||
|
import Text.JSON
|
||||||
|
|
||||||
import Types
|
import Types
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
|
@ -106,5 +108,9 @@ handle json normal = do
|
||||||
Annex.QuietOutput -> q
|
Annex.QuietOutput -> q
|
||||||
Annex.JSONOutput -> liftIO json
|
Annex.JSONOutput -> liftIO json
|
||||||
|
|
||||||
|
{- Shows a JSON value only when in json mode. -}
|
||||||
|
maybeShowJSON :: JSON a => [(String, a)] -> Annex ()
|
||||||
|
maybeShowJSON v = handle (JSON.add v) q
|
||||||
|
|
||||||
q :: Monad m => m ()
|
q :: Monad m => m ()
|
||||||
q = return ()
|
q = return ()
|
||||||
|
|
|
@ -8,9 +8,12 @@
|
||||||
module Messages.JSON (
|
module Messages.JSON (
|
||||||
start,
|
start,
|
||||||
end,
|
end,
|
||||||
note
|
note,
|
||||||
|
add
|
||||||
) where
|
) where
|
||||||
|
|
||||||
|
import Text.JSON
|
||||||
|
|
||||||
import qualified Utility.JSONStream as Stream
|
import qualified Utility.JSONStream as Stream
|
||||||
|
|
||||||
start :: String -> String -> IO ()
|
start :: String -> String -> IO ()
|
||||||
|
@ -20,4 +23,7 @@ end :: Bool -> IO ()
|
||||||
end b = putStr $ Stream.add [("success", b)] ++ Stream.end
|
end b = putStr $ Stream.add [("success", b)] ++ Stream.end
|
||||||
|
|
||||||
note :: String -> IO ()
|
note :: String -> IO ()
|
||||||
note s = putStr $ Stream.add [("note", s)]
|
note s = add [("note", s)]
|
||||||
|
|
||||||
|
add :: JSON a => [(String, a)] -> IO ()
|
||||||
|
add v = putStr $ Stream.add v
|
||||||
|
|
|
@ -30,7 +30,6 @@ module Remote (
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad (filterM)
|
import Control.Monad (filterM)
|
||||||
import Control.Monad.State (liftIO)
|
|
||||||
import Data.List
|
import Data.List
|
||||||
import qualified Data.Map as M
|
import qualified Data.Map as M
|
||||||
import Data.String.Utils
|
import Data.String.Utils
|
||||||
|
@ -47,7 +46,6 @@ import Config
|
||||||
import Trust
|
import Trust
|
||||||
import LocationLog
|
import LocationLog
|
||||||
import Messages
|
import Messages
|
||||||
import qualified Utility.JSONStream
|
|
||||||
import RemoteLog
|
import RemoteLog
|
||||||
|
|
||||||
import qualified Remote.Git
|
import qualified Remote.Git
|
||||||
|
@ -134,8 +132,7 @@ prettyPrintUUIDs :: String -> [UUID] -> Annex String
|
||||||
prettyPrintUUIDs desc uuids = do
|
prettyPrintUUIDs desc uuids = do
|
||||||
here <- getUUID =<< Annex.gitRepo
|
here <- getUUID =<< Annex.gitRepo
|
||||||
m <- M.union <$> uuidMap <*> availMap
|
m <- M.union <$> uuidMap <*> availMap
|
||||||
liftIO . putStr $ Utility.JSONStream.add
|
maybeShowJSON [(desc, map (jsonify m here) uuids)]
|
||||||
[(desc, map (jsonify m here) uuids)]
|
|
||||||
return $ unwords $ map (\u -> "\t" ++ prettify m here u ++ "\n") uuids
|
return $ unwords $ map (\u -> "\t" ++ prettify m here u ++ "\n") uuids
|
||||||
where
|
where
|
||||||
availMap = M.fromList . map (\r -> (uuid r, name r)) <$> genList
|
availMap = M.fromList . map (\r -> (uuid r, name r)) <$> genList
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue