Make commands build on ghc 7.10 as well
This commit is contained in:
parent
47f13c3f3d
commit
90eeb7bf0a
@ -1,3 +1,4 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
import Control.Monad (when, unless)
|
||||
import Control.Monad.IO.Class (liftIO)
|
||||
@ -6,7 +7,11 @@ import qualified Data.ByteString.Char8 as BSC
|
||||
import qualified Data.Conduit as C
|
||||
import qualified Data.Conduit.Binary as CB
|
||||
import Data.Time.LocalTime (localTimeToUTC, utc)
|
||||
import System.Directory (createDirectoryIfMissing, setModificationTime)
|
||||
import System.Directory (createDirectoryIfMissing
|
||||
#if MIN_VERSION_directory(1,2,3)
|
||||
, setModificationTime
|
||||
#endif
|
||||
)
|
||||
import System.Environment (getProgName, getArgs)
|
||||
import System.Exit (exitFailure)
|
||||
import System.FilePath.Posix (takeDirectory) -- zip files only use forward slashes
|
||||
@ -26,7 +31,9 @@ extract = C.awaitForever start where
|
||||
mapM_ (liftIO . hSetFileSize h . toInteger) zipEntrySize
|
||||
write C..| CB.sinkHandle h
|
||||
liftIO $ hClose h
|
||||
#if MIN_VERSION_directory(1,2,3)
|
||||
liftIO $ setModificationTime name $ localTimeToUTC utc zipEntryTime -- FIXME: timezone
|
||||
#endif
|
||||
where name = BSC.unpack $ BSC.dropWhile ('/' ==) zipEntryName -- should we utf8 decode?
|
||||
start (Right _) = fail "Unexpected leading or directory data contents"
|
||||
write = C.await >>= maybe
|
||||
|
||||
13
cmd/zip.hs
13
cmd/zip.hs
@ -1,3 +1,4 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
import Control.Monad (filterM, void)
|
||||
import Control.Monad.IO.Class (MonadIO, liftIO)
|
||||
import Control.Monad.Trans.Resource (MonadResource, runResourceT)
|
||||
@ -7,7 +8,13 @@ import qualified Data.Conduit.Binary as CB
|
||||
import Data.List (foldl')
|
||||
import Data.Time.LocalTime (utcToLocalTime, utc)
|
||||
import qualified System.Console.GetOpt as Opt
|
||||
import System.Directory (doesDirectoryExist, getModificationTime, isSymbolicLink, listDirectory)
|
||||
import System.Directory (doesDirectoryExist, getModificationTime
|
||||
#if MIN_VERSION_directory(1,2,6)
|
||||
, isSymbolicLink, listDirectory
|
||||
#else
|
||||
, getDirectoryContents
|
||||
#endif
|
||||
)
|
||||
import System.Environment (getProgName, getArgs)
|
||||
import System.Exit (exitFailure)
|
||||
import System.FilePath.Posix ((</>)) -- zip files only want forward slashes
|
||||
@ -38,7 +45,11 @@ generate (p:paths) = do
|
||||
isd <- liftIO $ doesDirectoryExist p
|
||||
if isd
|
||||
then do
|
||||
#if MIN_VERSION_directory(1,2,6)
|
||||
dl <- liftIO $ filterM (fmap not . isSymbolicLink) . map (p </>) =<< listDirectory p
|
||||
#else
|
||||
dl <- liftIO $ filter (`notElem` [".",".."]) . map (p </>) <$> getDirectoryContents p
|
||||
#endif
|
||||
C.yield (e{ zipEntryName = zipEntryName e `BSC.snoc` '/', zipEntrySize = Just 0 }, mempty)
|
||||
generate $ dl ++ paths
|
||||
else do
|
||||
|
||||
@ -15,10 +15,6 @@ source-repository head
|
||||
type: git
|
||||
location: https://github.com/dylex/zip-stream
|
||||
|
||||
flag commands
|
||||
description: Build command-line zip/unzip testing programs
|
||||
default: True
|
||||
|
||||
library
|
||||
exposed-modules:
|
||||
Codec.Archive.Zip.Conduit.Types
|
||||
@ -45,40 +41,34 @@ library
|
||||
zlib
|
||||
|
||||
executable unzip-stream
|
||||
if !flag(commands)
|
||||
buildable: False
|
||||
main-is: unzip.hs
|
||||
hs-source-dirs: cmd
|
||||
default-language: Haskell2010
|
||||
ghc-options: -Wall
|
||||
if flag(commands)
|
||||
build-depends:
|
||||
base >=4.9 && <5,
|
||||
bytestring,
|
||||
conduit,
|
||||
conduit-extra,
|
||||
directory >= 1.2.3,
|
||||
filepath,
|
||||
time,
|
||||
zip-stream
|
||||
else
|
||||
buildable: False
|
||||
build-depends:
|
||||
base >=4.8 && <5,
|
||||
bytestring,
|
||||
conduit,
|
||||
conduit-extra,
|
||||
directory >= 1.2.2,
|
||||
filepath,
|
||||
time,
|
||||
transformers,
|
||||
zip-stream
|
||||
|
||||
executable zip-stream
|
||||
main-is: zip.hs
|
||||
hs-source-dirs: cmd
|
||||
default-language: Haskell2010
|
||||
ghc-options: -Wall
|
||||
if flag(commands)
|
||||
build-depends:
|
||||
base >=4.9 && <5,
|
||||
bytestring,
|
||||
conduit,
|
||||
conduit-extra,
|
||||
directory >= 1.2.6,
|
||||
filepath,
|
||||
resourcet,
|
||||
time,
|
||||
zip-stream
|
||||
else
|
||||
buildable: False
|
||||
build-depends:
|
||||
base >=4.8 && <5,
|
||||
bytestring,
|
||||
conduit,
|
||||
conduit-extra,
|
||||
directory >= 1.2.2,
|
||||
filepath,
|
||||
resourcet,
|
||||
time,
|
||||
transformers,
|
||||
zip-stream
|
||||
|
||||
Loading…
Reference in New Issue
Block a user