foscam-directory-0.0.1: src/Data/Foscam/Directory.hs
module Data.Foscam.Directory(
getFoscamDirectoryContents
) where
import Data.Foscam.File.Filename
import System.Directory
import Text.Trifecta
import Text.Trifecta.Delta
import Data.ByteString.UTF8 as UTF8
import Prelude
data FoscamDirectoryFile =
Isn't FilePath
| Is Filename
deriving (Eq, Ord, Show)
getFoscamDirectoryContents ::
FilePath
-> IO [FoscamDirectoryFile]
getFoscamDirectoryContents p =
let fromResult (Success n) =
Is n
fromResult (Failure _) =
Isn't p
in map (fromResult . parseString filename (Directed (UTF8.fromString p) 0 0 0 0)) <$> getDirectoryContents p