Remove unnecessary Permissions type synonym

This commit is contained in:
Index Int 2015-05-08 02:25:36 +03:00
parent 0628598dd8
commit 563ad23499

View file

@ -136,13 +136,13 @@ module Turtle.Prelude (
, (.||.) , (.||.)
-- * Permissions -- * Permissions
, Directory.Permissions
, chmod , chmod
, Permissions
, readable, nonreadable , readable, nonreadable
, writable, nonwritable , writable, nonwritable
, executable, nonexecutable , executable, nonexecutable
, searchable, nonsearchable , searchable, nonsearchable
, ooo,roo,owo,oox,oos,rwo,rox,ros,owx,rwx,rws , ooo, roo, owo, oox, oos, rwo, rox, ros, owx, rwx, rws
-- * Managed -- * Managed
, readonly , readonly
@ -204,11 +204,7 @@ import System.Environment (
lookupEnv, lookupEnv,
#endif #endif
getEnvironment ) getEnvironment )
import qualified System.Directory as Filesystem import qualified System.Directory as Directory
( Permissions, getPermissions, setPermissions, emptyPermissions
, setOwnerReadable, setOwnerWritable
, setOwnerExecutable, setOwnerSearchable
, readable )
import System.Exit (ExitCode(..), exitWith) import System.Exit (ExitCode(..), exitWith)
import System.IO (Handle) import System.IO (Handle)
import qualified System.IO as IO import qualified System.IO as IO
@ -459,8 +455,8 @@ ls path = Shell (\(FoldM step begin done) -> do
x0 <- begin x0 <- begin
let path' = Filesystem.encodeString path let path' = Filesystem.encodeString path
canRead <- fmap canRead <- fmap
Filesystem.readable Directory.readable
(Filesystem.getPermissions (deslash path')) (Directory.getPermissions (deslash path'))
#ifdef mingw32_HOST_OS #ifdef mingw32_HOST_OS
reparse <- fmap reparsePoint (Win32.getFileAttributes path') reparse <- fmap reparsePoint (Win32.getFileAttributes path')
if (canRead && not reparse) if (canRead && not reparse)
@ -590,38 +586,41 @@ touch file = do
#endif #endif
else output file empty ) else output file empty )
type Permissions = Filesystem.Permissions -> Filesystem.Permissions
{-| Update a file or directory's permissions {-| Update a file or directory's permissions
> chmod rwo "foo.txt" -- chmod u=rw foo.txt > chmod rwo "foo.txt" -- chmod u=rw foo.txt
> chmod executable "foo.txt" -- chmod u+x foo.txt > chmod executable "foo.txt" -- chmod u+x foo.txt
> chmod nonwritable "foo.txt" -- chmod u-x foo.txt > chmod nonwritable "foo.txt" -- chmod u-x foo.txt
-} -}
chmod :: MonadIO io => Permissions -> FilePath -> io () chmod
:: MonadIO io
=> (Directory.Permissions -> Directory.Permissions)
-> FilePath
-> io ()
chmod modifyPermissions path = liftIO (do chmod modifyPermissions path = liftIO (do
let path' = deslash (Filesystem.encodeString path) let path' = deslash (Filesystem.encodeString path)
permissions <- Filesystem.getPermissions path' permissions <- Directory.getPermissions path'
Filesystem.setPermissions path' (modifyPermissions permissions) ) Directory.setPermissions path' (modifyPermissions permissions) )
readable, nonreadable :: Permissions readable, nonreadable :: Directory.Permissions -> Directory.Permissions
readable = Filesystem.setOwnerReadable True readable = Directory.setOwnerReadable True
nonreadable = Filesystem.setOwnerReadable False nonreadable = Directory.setOwnerReadable False
writable, nonwritable :: Permissions writable, nonwritable :: Directory.Permissions -> Directory.Permissions
writable = Filesystem.setOwnerWritable True writable = Directory.setOwnerWritable True
nonwritable = Filesystem.setOwnerWritable False nonwritable = Directory.setOwnerWritable False
executable, nonexecutable :: Permissions executable, nonexecutable :: Directory.Permissions -> Directory.Permissions
executable = Filesystem.setOwnerExecutable True executable = Directory.setOwnerExecutable True
nonexecutable = Filesystem.setOwnerExecutable False nonexecutable = Directory.setOwnerExecutable False
searchable, nonsearchable :: Permissions searchable, nonsearchable :: Directory.Permissions -> Directory.Permissions
searchable = Filesystem.setOwnerSearchable True searchable = Directory.setOwnerSearchable True
nonsearchable = Filesystem.setOwnerSearchable False nonsearchable = Directory.setOwnerSearchable False
ooo,roo,owo,oox,oos,rwo,rox,ros,owx,rwx,rws :: Permissions ooo, roo, owo, oox, oos, rwo, rox, ros, owx, rwx, rws
ooo = const Filesystem.emptyPermissions :: Directory.Permissions -> Directory.Permissions
ooo = const Directory.emptyPermissions
roo = readable . ooo roo = readable . ooo
owo = writable . ooo owo = writable . ooo
oox = executable . ooo oox = executable . ooo