module Cachix.Client ( main, ) where import Cachix.Client.Commands as Commands import Cachix.Client.Env (cachixVersion, mkEnv) import Cachix.Client.OptionsParser (CachixCommand (..), getOpts) import Protolude main :: IO () main :: IO () main = do (cachixoptions :: CachixOptions cachixoptions, command :: CachixCommand command) <- IO (CachixOptions, CachixCommand) getOpts Env env <- CachixOptions -> IO Env mkEnv CachixOptions cachixoptions case CachixCommand command of AuthToken token :: Text token -> Env -> Text -> IO () Commands.authtoken Env env Text token Create name :: Text name -> Env -> Text -> IO () Commands.create Env env Text name GenerateKeypair name :: Text name -> Env -> Text -> IO () Commands.generateKeypair Env env Text name Push pushArgs :: PushArguments pushArgs -> Env -> PushArguments -> IO () Commands.push Env env PushArguments pushArgs Use name :: Text name useOptions :: UseOptions useOptions -> Env -> Text -> UseOptions -> IO () Commands.use Env env Text name UseOptions useOptions Version -> Text -> IO () forall (m :: * -> *). MonadIO m => Text -> m () putText Text cachixVersion