packages feed

KiCS-0.8.8: src/lib/Curry/Module/Directory.hs.include

[ForFunction "prim_doesFileExist"
,ForFunction "prim_doesDirectoryExist"
,ForFunction "prim_fileSize"
,ForFunction "prim_getModificationTime"
,ForFunction "prim_getDirectoryContents"
]

import System.Time
import System.Directory
import System.IO

prim_doesFileExist :: C_String -> Result (C_IO C_Bool)
prim_doesFileExist = ioFunc1 doesFileExist

prim_doesDirectoryExist :: C_String -> Result (C_IO C_Bool)
prim_doesDirectoryExist = ioFunc1 doesDirectoryExist

prim_fileSize :: C_String -> Result (C_IO C_Int)
prim_fileSize = ioFunc1 (\s->do h <- openFile s ReadMode 
                                i <- hFileSize h
                                hClose h
                                Prelude.return i)

prim_getModificationTime :: C_String -> Result (C_IO C_ClockTime)
prim_getModificationTime = ioFunc1 getModificationTime

prim_getDirectoryContents :: C_String -> Result (C_IO (List C_String))
prim_getDirectoryContents = ioFunc1 getDirectoryContents

getCurrentDirectory :: Result (C_IO C_String)
getCurrentDirectory = ioFunc0 System.Directory.getCurrentDirectory

prim_createDirectory :: C_String -> Result (C_IO T0)
prim_createDirectory = ioFunc1 createDirectory

prim_removeFile :: C_String -> Result (C_IO T0)
prim_removeFile = ioFunc1 removeFile

prim_setCurrentDirectory :: C_String -> Result (C_IO T0)
prim_setCurrentDirectory = ioFunc1 setCurrentDirectory

prim_removeDirectory :: C_String -> Result (C_IO T0)
prim_removeDirectory = ioFunc1 removeDirectory

prim_renameFile :: C_String -> C_String -> Result (C_IO T0)
prim_renameFile = ioFunc2 renameFile

prim_renameDirectory :: C_String -> C_String -> Result (C_IO T0)
prim_renameDirectory = ioFunc2 renameDirectory