From 186d448f97232629597acb8cd95a6c8ecf430a48 Mon Sep 17 00:00:00 2001
From: Patrick Augusto <ptkato.irl@gmail.com>
Date: Tue, 4 May 2021 18:54:05 -0300
Subject: [PATCH] Changing to canonicalizePathNoThrow to prevent exceptions

---
 .../Distribution/Client/Init/NonInteractive/Heuristics.hs   | 2 +-
 cabal-install/src/Distribution/Client/Init/Types.hs         | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/cabal-install/src/Distribution/Client/Init/NonInteractive/Heuristics.hs b/cabal-install/src/Distribution/Client/Init/NonInteractive/Heuristics.hs
index 93348ada04..c8e9b9dcee 100644
--- a/cabal-install/src/Distribution/Client/Init/NonInteractive/Heuristics.hs
+++ b/cabal-install/src/Distribution/Client/Init/NonInteractive/Heuristics.hs
@@ -85,7 +85,7 @@ guessLanguage = do
 -- | Guess the package name based on the given root directory.
 guessPackageName :: Interactive m => FilePath -> m PackageName
 guessPackageName = fmap (mkPackageName . repair . fromMaybe "" . safeLast . splitDirectories)
-                 . tryCanonicalizePath
+                 . canonicalizePathNoThrow
   where
     -- Treat each span of non-alphanumeric characters as a hyphen. Each
     -- hyphenated component of a package name must contain at least one
diff --git a/cabal-install/src/Distribution/Client/Init/Types.hs b/cabal-install/src/Distribution/Client/Init/Types.hs
index c80a0f8068..3d19b97f5f 100644
--- a/cabal-install/src/Distribution/Client/Init/Types.hs
+++ b/cabal-install/src/Distribution/Client/Init/Types.hs
@@ -301,7 +301,7 @@ class Monad m => Interactive m where
     listDirectory :: FilePath -> m [FilePath]
     doesDirectoryExist :: FilePath -> m Bool
     doesFileExist :: FilePath -> m Bool
-    tryCanonicalizePath :: FilePath -> m FilePath
+    canonicalizePathNoThrow :: FilePath -> m FilePath
     readProcessWithExitCode :: FilePath -> [String] -> String -> m (ExitCode, String, String)
     getEnvironment :: m [(String, String)]
     listFilesInside :: (FilePath -> m Bool) -> FilePath -> m [FilePath]
@@ -329,7 +329,7 @@ instance Interactive IO where
     listDirectory = P.listDirectory
     doesDirectoryExist = P.doesDirectoryExist
     doesFileExist = P.doesFileExist
-    tryCanonicalizePath = P.tryCanonicalizePath
+    canonicalizePathNoThrow = P.canonicalizePathNoThrow
     readProcessWithExitCode = P.readProcessWithExitCode
     getEnvironment = P.getEnvironment
     listFilesInside = P.listFilesInside
@@ -356,7 +356,7 @@ instance Interactive PurePrompt where
     listDirectory !_ = popList
     doesDirectoryExist !_ = popBool
     doesFileExist !_ = popBool
-    tryCanonicalizePath !_ = popAbsolute
+    canonicalizePathNoThrow !_ = popAbsolute
     readProcessWithExitCode !_ !_ !_ = do
       input <- pop
       return (ExitSuccess, input, "")
-- 
GitLab