packages feed

cachix-api-1.9.0: cachix-api.cabal

cabal-version:   2.2
name:            cachix-api
version:         1.9.0
synopsis:        Servant HTTP API specification for https://cachix.org
homepage:        https://github.com/cachix/cachix#readme
bug-reports:     https://github.com/cachix/cachix/issues
author:          Domen Kozar
maintainer:      domen@cachix.org
copyright:       2018 Domen Kozar
category:        Nix
license:         Apache-2.0
license-file:    LICENSE
build-type:      Simple
extra-doc-files:
  CHANGELOG.md
  README.md

source-repository head
  type:     git
  location: https://github.com/cachix/cachix
  subdir:   cachix-api

common defaults
  build-depends:      base >=4.7 && <5
  default-extensions:
    DeriveAnyClass
    DeriveGeneric
    DerivingVia
    LambdaCase
    NamedFieldPuns
    NoImplicitPrelude
    NoImportQualifiedPost
    OverloadedStrings
    RecordWildCards
    ScopedTypeVariables

  ghc-options:
    -Wall -Wcompat -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Wredundant-constraints -fwarn-tabs
    -fwarn-unused-imports -fwarn-missing-signatures
    -fwarn-name-shadowing -fwarn-incomplete-patterns

  -- TODO: address partial record fields in Cachix Deploy
  -- if impl(ghc >= 8.4)
  --   ghc-options:       -Wpartial-fields

  if impl(ghc >=8.10)
    ghc-options: -Wunused-packages

  if impl(ghc >=9.2)
    ghc-options: -Wredundant-bang-patterns

  default-language:   Haskell2010

source-repository head
  type:     git
  location: https://github.com/cachix/cachix

library
  import:          defaults
  exposed-modules:
    Cachix.API
    Cachix.API.Deploy.V1
    Cachix.API.Deploy.V2
    Cachix.API.Error
    Cachix.API.Signing
    Cachix.API.WebSocketSubprotocol
    Cachix.Types.BinaryCache
    Cachix.Types.ByteStringStreaming
    Cachix.Types.ContentTypes
    Cachix.Types.Deploy
    Cachix.Types.Deployment
    Cachix.Types.DeployResponse
    Cachix.Types.DeployResponse.V1
    Cachix.Types.DeployResponse.V2
    Cachix.Types.MultipartUpload
    Cachix.Types.NarFileName
    Cachix.Types.NarInfo
    Cachix.Types.NarInfoCreate
    Cachix.Types.NarInfoHash
    Cachix.Types.NixCacheInfo
    Cachix.Types.Permission
    Cachix.Types.PinCreate
    Cachix.Types.Servant
    Cachix.Types.Session
    Cachix.Types.SigningKeyCreate

  hs-source-dirs:  src
  build-depends:
    , aeson
    , async
    , bytestring
    , conduit               >=1.3.0
    , crypton
    , deriving-aeson
    , exceptions
    , http-media
    , jose
    , memory
    , nix-narinfo
    , protolude
    , resourcet
    , safe-exceptions
    , servant               >=0.14.1
    , servant-auth
    , stm-chans
    , swagger2
    , text
    , time
    , unordered-containers
    , uuid
    , websockets

test-suite cachix-api-test
  import:             defaults
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  other-modules:
    DeploySpec
    Spec

  hs-source-dirs:     test
  build-depends:
    , aeson
    , bytestring
    , cachix-api
    , hspec
    , protolude

  build-tool-depends: hspec-discover:hspec-discover