From a1a99c2b2cac4a88e61c1099dd3cbb3698f64f14 Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov <the.dead.shall.rise@gmail.com> Date: Mon, 29 Apr 2013 23:24:09 +0200 Subject: [PATCH] Mark the '.cabal-sandbox' dir as hidden on Windows. --- cabal-install/Distribution/Client/Sandbox.hs | 2 ++ cabal-install/Distribution/Compat/FilePerms.hs | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs index 21ba32734e..52eecd132e 100644 --- a/cabal-install/Distribution/Client/Sandbox.hs +++ b/cabal-install/Distribution/Client/Sandbox.hs @@ -82,6 +82,7 @@ import Distribution.System ( Platform ) import Distribution.Text ( display ) import Distribution.Verbosity ( Verbosity, lessVerbose ) import Distribution.Compat.Env ( lookupEnv, setEnv ) +import Distribution.Compat.FilePerms ( setFileHidden ) import qualified Distribution.Client.Sandbox.Index as Index import qualified Distribution.Simple.Register as Register import Control.Exception ( assert, bracket_ ) @@ -192,6 +193,7 @@ sandboxInit verbosity sandboxFlags globalFlags = do (sandboxLocation sandboxFlags) createDirectoryIfMissingVerbose verbosity True sandboxDir' sandboxDir <- tryCanonicalizePath sandboxDir' + setFileHidden sandboxDir notice verbosity $ "Using a sandbox located at " ++ sandboxDir -- Determine which compiler to use (using the value from ~/.cabal/config). diff --git a/cabal-install/Distribution/Compat/FilePerms.hs b/cabal-install/Distribution/Compat/FilePerms.hs index 284f071df0..1f8393f515 100644 --- a/cabal-install/Distribution/Compat/FilePerms.hs +++ b/cabal-install/Distribution/Compat/FilePerms.hs @@ -3,6 +3,7 @@ module Distribution.Compat.FilePerms ( setFileOrdinary, setFileExecutable, + setFileHidden, ) where #ifndef mingw32_HOST_OS @@ -14,12 +15,15 @@ import Foreign.C ( withCString ) import Foreign.C ( throwErrnoPathIfMinus1_ ) +#else +import System.Win32.File (setFileAttributes, fILE_ATTRIBUTE_HIDDEN) #endif /* mingw32_HOST_OS */ -setFileOrdinary, setFileExecutable :: FilePath -> IO () +setFileHidden, setFileOrdinary, setFileExecutable :: FilePath -> IO () #ifndef mingw32_HOST_OS setFileOrdinary path = setFileMode path 0o644 -- file perms -rw-r--r-- setFileExecutable path = setFileMode path 0o755 -- file perms -rwxr-xr-x +setFileHidden _ = return () setFileMode :: FilePath -> FileMode -> IO () setFileMode name m = @@ -28,4 +32,5 @@ setFileMode name m = #else setFileOrdinary _ = return () setFileExecutable _ = return () +setFileHidden path = setFileAttributes path fILE_ATTRIBUTE_HIDDEN #endif -- GitLab