-- 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.0.2

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 :: IO (Maybe Config)
writeConfig :: Config -> IO ()
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.NixConf
type NixConf = NixConfG [NixConfLine]
newtype NixConfG a
NixConf :: a -> NixConfG a
data NixConfLine
Substituters :: [Text] -> NixConfLine
TrustedUsers :: [Text] -> NixConfLine
TrustedPublicKeys :: [Text] -> NixConfLine
BinaryCachePublicKeys :: [Text] -> NixConfLine
BinaryCaches :: [Text] -> NixConfLine
Other :: Text -> NixConfLine
data NixConfLoc
Global :: NixConfLoc
Local :: NixConfLoc
render :: NixConf -> Text

-- | Pure version of addIO
add :: BinaryCache -> [NixConf] -> NixConf -> NixConf
read :: NixConfLoc -> IO (Maybe NixConf)
update :: NixConfLoc -> (Maybe NixConf -> NixConf) -> IO ()
write :: 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
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.NixVersion
getNixMode :: IO (Either Text NixMode)
parseNixMode :: Text -> Either Text NixMode
data NixMode
Nix20 :: NixMode
Nix201 :: NixMode
Nix1XX :: NixMode
instance GHC.Classes.Eq Cachix.Client.NixVersion.NixMode
instance GHC.Show.Show Cachix.Client.NixVersion.NixMode

module Cachix.Client.InstallationMode
data InstallationMode
Install :: NixConfLoc -> InstallationMode
UnsupportedNix1X :: InstallationMode
EchoNixOS :: InstallationMode
EchoNixOSWithTrustedUser :: InstallationMode
UntrustedRequiresSudo :: InstallationMode
Nix20RequiresSudo :: InstallationMode
data NixEnv
NixEnv :: NixMode -> Bool -> Bool -> Bool -> NixEnv
[nixMode] :: NixEnv -> NixMode
[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
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 -> Bool -> CachixOptions
[host] :: CachixOptions -> URIRef Absolute
[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

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


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

module Cachix.Client
main :: IO ()
