-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Command line client for Nix binary cache hosting https://cachix.org
--   
--   Command line client for Nix binary cache hosting
--   <a>https://cachix.org</a>
@package cachix
@version 0.1.3

module Cachix.Client.Config
data Config
Config :: Text -> [BinaryCacheConfig] -> Config
[authToken] :: Config -> Text
[binaryCaches] :: Config -> [BinaryCacheConfig]
data BinaryCacheConfig
BinaryCacheConfig :: Text -> Text -> BinaryCacheConfig
[name] :: BinaryCacheConfig -> Text
[secretKey] :: BinaryCacheConfig -> Text
readConfig :: ConfigPath -> IO (Maybe Config)
writeConfig :: ConfigPath -> Config -> IO ()
getDefaultFilename :: IO FilePath
type ConfigPath = FilePath
mkConfig :: Text -> Config
instance Dhall.Inject Cachix.Client.Config.Config
instance Dhall.Interpret Cachix.Client.Config.Config
instance GHC.Generics.Generic Cachix.Client.Config.Config
instance GHC.Show.Show Cachix.Client.Config.Config
instance Dhall.Inject Cachix.Client.Config.BinaryCacheConfig
instance Dhall.Interpret Cachix.Client.Config.BinaryCacheConfig
instance GHC.Generics.Generic Cachix.Client.Config.BinaryCacheConfig
instance GHC.Show.Show Cachix.Client.Config.BinaryCacheConfig

module Cachix.Client.NixVersion
getNixVersion :: IO (Either Text NixVersion)
parseNixVersion :: Text -> Either Text NixVersion
data NixVersion
Nix20 :: NixVersion
Nix201 :: NixVersion
Nix1XX :: NixVersion
instance GHC.Classes.Eq Cachix.Client.NixVersion.NixVersion
instance GHC.Show.Show Cachix.Client.NixVersion.NixVersion

module Cachix.Client.NixConf
type NixConf = NixConfG [NixConfLine]
newtype NixConfG a
NixConf :: a -> NixConfG a
data NixConfLine
Substituters :: [Text] -> NixConfLine
TrustedUsers :: [Text] -> NixConfLine
TrustedPublicKeys :: [Text] -> NixConfLine
Other :: Text -> NixConfLine
data NixConfLoc
Global :: NixConfLoc
Local :: NixConfLoc
render :: NixVersion -> NixConf -> Text

-- | Pure version of addIO
add :: BinaryCache -> [NixConf] -> NixConf -> NixConf
read :: NixConfLoc -> IO (Maybe NixConf)
update :: NixVersion -> NixConfLoc -> (Maybe NixConf -> NixConf) -> IO ()
write :: NixVersion -> NixConfLoc -> NixConf -> IO ()
getFilename :: NixConfLoc -> IO FilePath
parser :: Parser NixConf
parse :: Text -> Either (ParseError (Token Text) Void) NixConf
readLines :: [NixConf] -> (NixConfLine -> Maybe [Text]) -> [Text]
writeLines :: (NixConfLine -> Maybe [Text]) -> NixConfLine -> NixConf -> NixConf
isTrustedUsers :: NixConfLine -> Maybe [Text]
defaultPublicURI :: Text
defaultSigningKey :: Text
substitutersKey :: NixVersion -> Text
trustedPublicKeysKey :: NixVersion -> Text
instance GHC.Classes.Eq Cachix.Client.NixConf.NixConfLoc
instance GHC.Show.Show Cachix.Client.NixConf.NixConfLoc
instance GHC.Base.Functor Cachix.Client.NixConf.NixConfG
instance GHC.Classes.Eq a => GHC.Classes.Eq (Cachix.Client.NixConf.NixConfG a)
instance GHC.Show.Show a => GHC.Show.Show (Cachix.Client.NixConf.NixConfG a)
instance GHC.Classes.Eq Cachix.Client.NixConf.NixConfLine
instance GHC.Show.Show Cachix.Client.NixConf.NixConfLine

module Cachix.Client.InstallationMode
data InstallationMode
Install :: NixVersion -> NixConfLoc -> InstallationMode
EchoNixOS :: NixVersion -> InstallationMode
EchoNixOSWithTrustedUser :: NixVersion -> InstallationMode
UntrustedRequiresSudo :: InstallationMode
Nix20RequiresSudo :: InstallationMode
data NixEnv
NixEnv :: NixVersion -> Bool -> Bool -> Bool -> NixEnv
[nixVersion] :: NixEnv -> NixVersion
[isTrusted] :: NixEnv -> Bool
[isRoot] :: NixEnv -> Bool
[isNixOS] :: NixEnv -> Bool
data CachixException
UnsupportedNixVersion :: Text -> CachixException
UserEnvNotSet :: Text -> CachixException
MustBeRoot :: Text -> CachixException
NixOSInstructions :: Text -> CachixException
AmbiguousInput :: Text -> CachixException
NoInput :: Text -> CachixException
NoConfig :: Text -> CachixException
NarStreamingError :: ExitCode -> Text -> CachixException
getInstallationMode :: NixEnv -> InstallationMode

-- | Add a Binary cache to nix.conf, print nixos config or fail
addBinaryCache :: BinaryCache -> InstallationMode -> IO ()
isTrustedUser :: [Text] -> IO Bool
getUser :: IO Text
instance GHC.Classes.Eq Cachix.Client.InstallationMode.InstallationMode
instance GHC.Show.Show Cachix.Client.InstallationMode.InstallationMode
instance GHC.Show.Show Cachix.Client.InstallationMode.CachixException
instance GHC.Exception.Exception Cachix.Client.InstallationMode.CachixException

module Cachix.Client.OptionsParser
data CachixCommand
AuthToken :: Text -> CachixCommand
Create :: BinaryCacheName -> CachixCommand
Push :: BinaryCacheName -> [Text] -> Bool -> CachixCommand
Use :: BinaryCacheName -> Bool -> CachixCommand
Version :: CachixCommand
data CachixOptions
CachixOptions :: URIRef Absolute -> ConfigPath -> Bool -> CachixOptions
[host] :: CachixOptions -> URIRef Absolute
[configPath] :: CachixOptions -> ConfigPath
[verbose] :: CachixOptions -> Bool
type BinaryCacheName = Text
getOpts :: IO (CachixOptions, CachixCommand)
instance GHC.Show.Show Cachix.Client.OptionsParser.CachixCommand
instance GHC.Show.Show Cachix.Client.OptionsParser.CachixOptions

module Cachix.Client.Servant
isErr :: ServantError -> Status -> Bool


-- | Ugly glue between URI and BaseUrl | TODO: mark as Internal module
module Cachix.Client.URI
getBaseUrl :: URIRef Absolute -> BaseUrl

module Cachix.Client.Env
data Env
Env :: Maybe Config -> ClientEnv -> CachixOptions -> Env
[config] :: Env -> Maybe Config
[clientenv] :: Env -> ClientEnv
[cachixoptions] :: Env -> CachixOptions
mkEnv :: CachixOptions -> IO Env
cachixVersion :: Text

module Cachix.Client.Commands
authtoken :: Env -> Text -> IO ()
create :: Env -> Text -> IO ()
push :: Env -> Text -> [Text] -> Bool -> IO ()
use :: Env -> Text -> Bool -> IO ()

module Cachix.Client
main :: IO ()
