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, CachixCommand command) <- IO (CachixOptions, CachixCommand) getOpts Env env <- CachixOptions -> IO Env mkEnv CachixOptions cachixoptions case CachixCommand command of AuthToken Maybe Text token -> Env -> Maybe Text -> IO () Commands.authtoken Env env Maybe Text token GenerateKeypair Text name -> Env -> Text -> IO () Commands.generateKeypair Env env Text name Push PushArguments pushArgs -> Env -> PushArguments -> IO () Commands.push Env env PushArguments pushArgs WatchStore PushOptions watchArgs Text name -> Env -> PushOptions -> Text -> IO () Commands.watchStore Env env PushOptions watchArgs Text name WatchExec PushOptions pushArgs Text name Text cmd [Text] args -> Env -> PushOptions -> Text -> Text -> [Text] -> IO () Commands.watchExec Env env PushOptions pushArgs Text name Text cmd [Text] args Use Text name UseOptions useOptions -> Env -> Text -> UseOptions -> IO () Commands.use Env env Text name UseOptions useOptions CachixCommand Version -> Text -> IO () forall (m :: * -> *). MonadIO m => Text -> m () putText Text cachixVersion