module HashAddressed.App.Command.Examples.Version ( versionCommand, ) where import Essentials import HashAddressed.App.Command.Type import HashAddressed.App.Version (version) import Control.Monad.IO.Class (liftIO) import qualified Options.Applicative as Options import qualified System.IO as IO versionCommand :: Command versionCommand :: Command versionCommand = forall a. Parser a -> InfoMod a -> ParserInfo a Options.info (Parser (CommandAction ()) parser forall (f :: * -> *) a b. Applicative f => f a -> f (a -> b) -> f b <**> forall a. Parser (a -> a) Options.helper) forall a b. (a -> b) -> a -> b $ forall a. String -> InfoMod a Options.progDesc String "Print version numbers" where parser :: Options.Parser (CommandAction ()) parser :: Parser (CommandAction ()) parser = forall (f :: * -> *) a. Applicative f => a -> f a pure do forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO forall a b. (a -> b) -> a -> b $ String -> IO () IO.putStrLn forall a b. (a -> b) -> a -> b $ String "hash-addressed " forall a. Semigroup a => a -> a -> a <> String version