99module Encoins.Relay.Apps.Internal where
1010
1111import Cardano.Api (NetworkId , writeFileJSON )
12- import Control.Arrow ((>>>) , Arrow ((&&&) ), (<<<) )
12+ import Control.Arrow (Arrow ((&&&) ), (<<<) , (>>> ) )
1313import Control.Concurrent (threadDelay )
1414import Control.Exception (AsyncException (UserInterrupt ), Exception (.. ), SomeException )
1515import Control.Monad (forM , join , (>=>) )
@@ -19,7 +19,7 @@ import Data.Aeson (FromJSON (parseJSON), ToJSO
1919import Data.Aeson.Types (parseMaybe )
2020import Data.Default (def )
2121import Data.Either.Extra (eitherToMaybe )
22- import Data.List (sort , stripPrefix , isPrefixOf )
22+ import Data.List (isPrefixOf , sort , stripPrefix )
2323import Data.Maybe (catMaybes , listToMaybe , mapMaybe )
2424import Data.Text (Text )
2525import qualified Data.Text.Lazy as TL
@@ -31,9 +31,10 @@ import PlutusAppsExtra.Api.Kupo (CreatedOrSpent (..), KupoRe
3131import PlutusAppsExtra.IO.ChainIndex.Kupo ()
3232import PlutusAppsExtra.Utils.Kupo (KupoResponse (.. ), kupoResponseToJSON )
3333import System.Directory (createDirectoryIfMissing , listDirectory , removeFile )
34- import System.ProgressBar (Progress (.. ), ProgressBarWidth (.. ), Style (.. ), defStyle , exact ,
35- incProgress , msg , ProgressBar )
36- import qualified System.ProgressBar as PB
34+ import System.FilePath ((</>) )
35+ import System.ProgressBar (Progress (.. ), ProgressBar , ProgressBarWidth (.. ), Style (.. ), defStyle ,
36+ exact , incProgress , msg )
37+ import qualified System.ProgressBar as PB
3738
3839encoinsTokenName :: TokenName
3940encoinsTokenName = " ENCS"
@@ -114,17 +115,16 @@ loadMostRecentFile :: FromJSON a => FilePath -> String -> IO (Maybe (Time.UTCTim
114115loadMostRecentFile dir prefix = do
115116 files <- listDirectory dir
116117 let time = listToMaybe . reverse . sort $ mapMaybe (stripPrefix prefix >=> takeWhile (/= ' .' ) >>> readTime) files
117- fp = (\ t -> dir <> " / " < > prefix <> t <> " .json" ) . formatTime <$> time
118+ fp = (\ t -> dir </ > prefix <> t <> " .json" ) . formatTime <$> time
118119 res <- fmap join $ sequence $ fmap eitherToMaybe . eitherDecodeFileStrict <$> fp
119120 pure $ (,) <$> time <*> res
120121
121122janitorFiles :: MonadIO m => FilePath -> String -> m ()
122123janitorFiles dir prefix = liftIO $ do
123124 files <- listDirectory dir
124125 let mbLastTime = listToMaybe . reverse . sort $ mapMaybe (stripPrefix prefix >=> takeWhile (/= ' .' ) >>> readTime) files
125- mbLastFile = (\ t -> dir <> " / " < > prefix <> t <> " .json" ) . formatTime <$> mbLastTime
126- toRemove = (`filterFiles` map addDirPrefix files) <$> mbLastFile
126+ mbLastFile = (\ t -> dir </ > prefix <> t <> " .json" ) . formatTime <$> mbLastTime
127+ toRemove = (`filterFiles` map (dir </> ) files) <$> mbLastFile
127128 sequence_ $ mapM_ removeFile <$> toRemove
128129 where
129- filterFiles lastFile = filter $ uncurry (&&) <<< (/= lastFile) &&& isPrefixOf (addDirPrefix prefix)
130- addDirPrefix f = dir <> " /" <> f
130+ filterFiles lastFile = filter $ uncurry (&&) <<< (/= lastFile) &&& isPrefixOf (dir </> prefix)
0 commit comments