packages feed

directory-ospath-streaming-0.1.0.2: directory-ospath-streaming.cabal

cabal-version: 3.0

-- Created : 27 April 2023

name:
  directory-ospath-streaming
version:
  0.1.0.2
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:
  test/filesystem/*.txt
  test/filesystem/bin/*.txt

extra-doc-files:
  Changelog.md
  Readme.md

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

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

-- Cabal will pick this flag up automatically during solving. Default to true
-- since that’s what should be picked up for all future filepath versions starting at 1.5.
flag os-string
  description:
    Depend on os-string package, needed for filepath >= 1.5
  default:
    True
  manual:
    False

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

common depends-on-filepath
  if flag(os-string)
    build-depends:
      , filepath >= 1.5
      , os-string >= 2.0
  else
    build-depends:
      , filepath >= 1.4.100 && < 1.5

library
  import: ghc-options, depends-on-filepath
  exposed-modules:
    System.Directory.OsPath.FileType
    System.Directory.OsPath.Streaming
  hs-source-dirs:
    src
  build-depends:
    , base >= 4.16 && < 5

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