From 0924cc38b682e7cf2c265c15393313300616e479 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Mon, 2 Aug 2010 17:27:59 +0000 Subject: [PATCH] Make the permissions type abstract --- System/Directory.hs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/System/Directory.hs b/System/Directory.hs index 269f4fd..1291d71 100644 --- a/System/Directory.hs +++ b/System/Directory.hs @@ -55,13 +55,15 @@ module System.Directory -- $permissions - , Permissions( - Permissions, - readable, -- :: Permissions -> Bool - writable, -- :: Permissions -> Bool - executable, -- :: Permissions -> Bool - searchable -- :: Permissions -> Bool - ) + , Permissions + , readable -- :: Permissions -> Bool + , writable -- :: Permissions -> Bool + , executable -- :: Permissions -> Bool + , searchable -- :: Permissions -> Bool + , setOwnerReadable + , setOwnerWritable + , setOwnerExecutable + , setOwnerSearchable , getPermissions -- :: FilePath -> IO Permissions , setPermissions -- :: FilePath -> Permissions -> IO () @@ -161,6 +163,18 @@ data Permissions executable, searchable :: Bool } deriving (Eq, Ord, Read, Show) +setOwnerReadable :: Bool -> Permissions -> Permissions +setOwnerReadable b p = p { readable = b } + +setOwnerWritable :: Bool -> Permissions -> Permissions +setOwnerWritable b p = p { writable = b } + +setOwnerExecutable :: Bool -> Permissions -> Permissions +setOwnerExecutable b p = p { executable = b } + +setOwnerSearchable :: Bool -> Permissions -> Permissions +setOwnerSearchable b p = p { searchable = b } + {- |The 'getPermissions' operation returns the permissions for the file or directory. -- 1.7.10.4