chiasma-0.10.0.0: lib/Chiasma/Data/TmuxRequest.hs
module Chiasma.Data.TmuxRequest where
import qualified Data.Text as Text
import Chiasma.Data.TmuxQuery (TmuxQuery (TmuxQuery))
data TmuxRequest =
TmuxRequest {
cmd :: Text,
args :: [Text],
query :: Maybe TmuxQuery
}
deriving stock (Eq, Show)
queryArgs :: TmuxQuery -> [Text]
queryArgs (TmuxQuery q) =
["-F", "'", q, "'"]
cmdline :: TmuxRequest -> [Text]
cmdline TmuxRequest { ..} =
cmd : args ++ foldMap queryArgs query ++ ["\n"]
encode :: TmuxRequest -> ByteString
encode req =
encodeUtf8 (Text.unwords (cmdline req))