@@ -16,6 +16,7 @@ import Data.List (sortBy, minimumBy)
16
16
import Data.Maybe
17
17
import Data.Foldable (toList )
18
18
import System.IO
19
+ import System.IO.Temp
19
20
import System.Directory
20
21
import Prelude
21
22
@@ -57,20 +58,23 @@ defaultSortParams =
57
58
, maxFanIn = 256
58
59
}
59
60
60
- -- | @sortEvents tmpDir outPath eventlog@ sorts @eventlog@ via on-disk merge
61
- -- sort, using @tmpDir@ for intermediate data . The sorted eventlog is written
62
- -- to @eventlog@ .
61
+ -- | @sortEvents outPath eventlog@ sorts @eventlog@ via on-disk merge
62
+ -- sort. The sorted eventlog is written to @eventlog@. The system's temporary
63
+ -- directory is used for temporary data. See 'sortEvents\'' for more control .
63
64
sortEvents
64
- :: FilePath -- ^ temporary directory
65
- -> FilePath -- ^ output eventlog file path
65
+ :: FilePath -- ^ output eventlog file path
66
66
-> EventLog -- ^ eventlog to sort
67
67
-> IO ()
68
- sortEvents = sortEvents' defaultSortParams
68
+ sortEvents outPath eventLog =
69
+ withSystemTempDirectory " sort-events" $ \ tmpDir ->
70
+ sortEvents' defaultSortParams tmpDir outPath eventLog
69
71
70
72
-- | @sortEvents' params tmpDir outPath eventlog@ sorts
71
73
-- @eventlog@ via on-disk merge sort, using @tmpDir@ for
72
- -- intermediate data. The sorted eventlog is written to
73
- -- @eventlog@.
74
+ -- intermediate data. The caller is responsible for deleting @tmpDir@ upon
75
+ -- return.
76
+ --
77
+ -- The sorted eventlog is written to @eventlog@.
74
78
sortEvents'
75
79
:: SortParams
76
80
-> FilePath -- ^ temporary directory
0 commit comments