File: directory-ospath-streaming.cabal

package info (click to toggle)
haskell-directory-ospath-streaming 0.2.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 116 kB
  • sloc: haskell: 643; makefile: 3
file content (159 lines) | stat: -rw-r--r-- 3,410 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
cabal-version: 3.0

-- Created : 27 April 2023

name:
  directory-ospath-streaming
version:
  0.2.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.

  Also defines general-purpose recursive directory traversals.

  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

tested-with:
  , GHC == 8.6
  , GHC == 8.8
  , GHC == 8.10
  , GHC == 9.2
  , GHC == 9.4
  , GHC == 9.6
  , GHC == 9.8
  , GHC == 9.10

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: Haskell2010

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

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

  if impl(ghc >= 8.10)
    ghc-options:
      -Wno-missing-safe-haskell-mode
      -Wno-prepositive-qualified-module

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

  if impl(ghc >= 9.8)
    ghc-options:
      -Wno-missing-role-annotations
      -Wno-missing-poly-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.Streaming
    System.Directory.OsPath.Streaming.Internal
    System.Directory.OsPath.Streaming.Internal.Raw
    System.Directory.OsPath.Types
  other-modules:
    System.Directory.OsPath.Contents
    System.Directory.OsPath.FileType
    System.Directory.OsPath.Utils
  hs-source-dirs:
    src
  build-depends:
    , atomic-counter
    , base >= 4.12 && < 5
    , deepseq >= 1.4

  if os(windows)
    build-depends:
      , directory >= 1.3.8
      , Win32 >= 2.13.3
  else
    build-depends:
      -- Cannot use lower version because it doesn’t support OsStrings
      , 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.12
    , directory-ospath-streaming
    , tasty
    , tasty-hunit
  if !os(windows)
    build-depends:
      , directory
      , random
      , unix >= 2.8
  ghc-options:
    -rtsopts
    -main-is TestMain