pgdl 10.5 → 10.6
raw patch · 2 files changed
+13/−3 lines, 2 filesdep ~brick
Dependency ranges changed: brick
Files
- pgdl.cabal +2/−2
- src/DownloadInterface.hs +11/−1
pgdl.cabal view
@@ -1,6 +1,6 @@ name: pgdl-version: 10.5+version: 10.6 license: PublicDomain license-file: LICENSE author: mingchuan@@ -39,7 +39,7 @@ data-default, tagsoup, directory-listing-webpage-parser >= 0.1.1.0,- brick >= 0.13 && < 0.16, vty, microlens,+ brick >= 0.13 && < 0.17, vty, microlens, conduit, conduit-extra, http-conduit, http-types, resourcet, configurator >= 0.3,
src/DownloadInterface.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE LambdaCase#-} {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}+{-# LANGUAGE CPP #-} module DownloadInterface (downloadInterface, DownloadSettings(..)) where@@ -17,13 +18,16 @@ import Control.Monad.IO.Class import Control.Concurrent import Control.Applicative-import qualified Control.Concurrent.Chan as C import Network.HTTP.Conduit import Network.HTTP.Types.Header import System.Posix.Files import System.Process import qualified System.IO as IO import Distribution.System+import qualified Control.Concurrent.Chan as C+#if MIN_VERSION_brick(0, 16, 0)+import qualified Brick.BChan as BC+#endif import qualified Graphics.Vty as V import qualified Brick.Main as M@@ -61,9 +65,15 @@ downloadInterface :: DownloadSettings -> IO () downloadInterface dSettings = do+#if MIN_VERSION_brick(0, 16, 0)+ eventChan <- BC.newBChan 100000000 -- select a big enough number+ unless (justOpen dSettings) . void . forkIO $+ download dSettings (BC.writeBChan eventChan)+#else eventChan <- C.newChan unless (justOpen dSettings) . void . forkIO $ download dSettings (C.writeChan eventChan)+#endif progressBarTotSize <- if justOpen dSettings then getLocalFileSize (T.unpack $ localStoragePath dSettings) >>= \case Nothing -> error "file do not exist."