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 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 WatchStore watchArgs :: PushOptions watchArgs name :: Text name -> Env -> PushOptions -> Text -> IO () Commands.watchStore Env env PushOptions watchArgs Text name WatchExec pushArgs :: PushOptions pushArgs name :: Text name cmd :: Text cmd args :: [Text] args -> Env -> PushOptions -> Text -> Text -> [Text] -> IO () Commands.watchExec Env env PushOptions pushArgs Text name Text cmd [Text] args 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