cabal-version: 3.0

-- Created : 27 April 2023

name:
  directory-ospath-streaming
version:
  0.1.0.1
synopsis:
  Stream directory entries in constant memory in vanilla IO
description:
  Reading of directory contents in constant memory, i.e. in an iterative
  fashion without storing all directory elements in memory. From another
  perspective, this reading interface allows stopping at any point
  without loading every directory element.

  Both Windows and Unix systems are supported.
copyright:
  (c) Sergey Vinokurov 2023
license:
  Apache-2.0
license-file:
  LICENSE
author:
  Sergey Vinokurov
maintainer:
  Sergey Vinokurov <serg.foo@gmail.com>
category:
  File, Streaming

build-type:
  Simple

extra-source-files:
  Changelog.md
  Readme.md
  test/filesystem/*.txt
  test/filesystem/bin/*.txt

homepage:
  https://github.com/sergv/directory-ospath-streaming

source-repository head
  type: git
  location: https://github.com/sergv/directory-ospath-streaming.git

common ghc-options
  default-language:
    GHC2021

  default-extensions:
    LambdaCase

  ghc-options:
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-implicit-prelude
    -Wno-missed-specialisations
    -Wno-missing-import-lists
    -Wno-missing-local-signatures
    -Wno-missing-safe-haskell-mode
    -Wno-safe
    -Wno-type-defaults
    -Wno-unsafe

  if impl(ghc >= 8.8)
    ghc-options:
      -Wno-missing-deriving-strategies

  if impl(ghc >= 9.2)
    ghc-options:
      -Wno-missing-kind-signatures

library
  import: ghc-options
  exposed-modules:
    System.Directory.OsPath.FileType
    System.Directory.OsPath.Streaming
  hs-source-dirs:
    src
  build-depends:
    , base >= 4.16 && < 5
    , filepath >= 1.4.100
  if os(windows)
    build-depends:
      , atomic-counter
      , directory >= 1.3.8
      , Win32 >= 2.13.3
  else
    build-depends:
      , unix >= 2.8

test-suite test
  import: ghc-options
  type:
    exitcode-stdio-1.0
  main-is:
    test/TestMain.hs
  hs-source-dirs:
    .
    test
  build-depends:
    , base >= 4.16
    , directory
    , directory-ospath-streaming
    , filepath >= 1.4.100
    , random
    , tasty
    , tasty-hunit
  if !os(windows)
    build-depends:
      unix >= 2.8
  ghc-options:
    -rtsopts
    -main-is TestMain