diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs index 21ba32734ec071d3129ad33800d31dabc480152e..52eecd132e96b86875a3965b3c4815a0672c5e8d 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 284f071df06325aabdf2f0a07d98572d95757609..1f8393f515903b7727512daecd7f1fdab3d2fca6 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