Skip to content
Snippets Groups Projects
Unverified Commit c10974d0 authored by Herbert Valerio Riedel's avatar Herbert Valerio Riedel :man_dancing: Committed by GitHub
Browse files

Merge pull request #5602 from fgaz/new-install/warn-symlink

Warn when failing to symlink an exe in new-install

This provides a partial fix/improvement to #5491
parents 6ef25232 1379f545
No related branches found
No related tags found
No related merge requests found
......@@ -107,6 +107,8 @@ import Distribution.Utils.Generic
( writeFileAtomic )
import Distribution.Text
( simpleParse )
import Distribution.Pretty
( prettyShow )
import Control.Exception
( catch )
......@@ -586,16 +588,21 @@ symlinkBuiltPackage :: Verbosity
, [(ComponentTarget, [TargetSelector])] )
-> IO ()
symlinkBuiltPackage verbosity mkSourceBinDir destDir (pkg, components) =
traverse_ (symlinkBuiltExe verbosity (mkSourceBinDir pkg) destDir) exes
traverse_ symlinkAndWarn exes
where
exes = catMaybes $ (exeMaybe . fst) <$> components
exeMaybe (ComponentTarget (CExeName exe) _) = Just exe
exeMaybe _ = Nothing
symlinkAndWarn exe = do
success <- symlinkBuiltExe verbosity (mkSourceBinDir pkg) destDir exe
unless success $ warn verbosity $ "Symlink for "
<> prettyShow exe
<> " already exists. Not overwriting."
-- | Symlink a specific exe.
symlinkBuiltExe :: Verbosity -> FilePath -> FilePath -> UnqualComponentName -> IO Bool
symlinkBuiltExe verbosity sourceDir destDir exe = do
notice verbosity $ "Symlinking " ++ unUnqualComponentName exe
notice verbosity $ "Symlinking " ++ prettyShow exe
symlinkBinary
destDir
sourceDir
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment