From cf9a5ba9cae80f73c0ff1bec8bee5dff7d7b28af Mon Sep 17 00:00:00 2001 From: Fendor <power.walross@gmail.com> Date: Sat, 12 Jun 2021 15:35:13 +0200 Subject: [PATCH] Print error message if no freeze file can be found --- .../src/Distribution/Client/CmdOutdated.hs | 14 ++++++++++++-- .../PackageTests/Outdated/outdated_freeze.out | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cabal-install/src/Distribution/Client/CmdOutdated.hs b/cabal-install/src/Distribution/Client/CmdOutdated.hs index 979fc3afa7..b2b817a00c 100644 --- a/cabal-install/src/Distribution/Client/CmdOutdated.hs +++ b/cabal-install/src/Distribution/Client/CmdOutdated.hs @@ -89,7 +89,7 @@ import Distribution.ReadE import qualified Data.Set as S import System.Directory - ( getCurrentDirectory ) + ( getCurrentDirectory, doesFileExist ) ------------------------------------------------------------------------------- -- Command @@ -304,8 +304,18 @@ depsFromNewFreezeFile verbosity mprojectFile = do let ucnstrs = map fst . projectConfigConstraints . projectConfigShared $ projectConfig deps = userConstraintsToDependencies ucnstrs + freezeFile = distProjectFile distDirLayout "freeze" + freezeFileExists <- doesFileExist freezeFile + + unless freezeFileExists $ + die' verbosity $ + "Couldn't find a freeze file expected at: " ++ freezeFile ++ "\n\n" + ++ "We are looking for this file because you supplied '--project-file' or '--v2-freeze-file'. " + ++ "When one of these flags is given, we try to read the dependencies from a freeze file. " + ++ "If it is undesired behaviour, you should not use these flags, otherwise please generate " + ++ "a freeze file via 'cabal freeze'." debug verbosity $ - "Reading the list of dependencies from the new-style freeze file " ++ distProjectFile distDirLayout "freeze" + "Reading the list of dependencies from the new-style freeze file " ++ freezeFile return deps -- | Read the list of dependencies from the package description. diff --git a/cabal-testsuite/PackageTests/Outdated/outdated_freeze.out b/cabal-testsuite/PackageTests/Outdated/outdated_freeze.out index feacae734c..fb8608b255 100644 --- a/cabal-testsuite/PackageTests/Outdated/outdated_freeze.out +++ b/cabal-testsuite/PackageTests/Outdated/outdated_freeze.out @@ -23,4 +23,6 @@ Outdated dependencies: template-haskell ==2.3.0.0 (latest: 2.3.0.1) binary ==0.8.5.0 (latest: 0.8.6.0) # cabal outdated -cabal: Couldn't find a freeze file expected at: <ROOT>/cabal.project.missing.freeze.freezeWe are looking for this file because you supplied '--project-file' or '--v2-freeze-file'. When one of these flags is given, we try to read the dependencies from a freeze file. If it is undesired behaviour, you should not use these flags, otherwise please generate a freeze file via 'cabal freeze' +cabal: Couldn't find a freeze file expected at: <ROOT>/cabal.project.missing.freeze.freeze + +We are looking for this file because you supplied '--project-file' or '--v2-freeze-file'. When one of these flags is given, we try to read the dependencies from a freeze file. If it is undesired behaviour, you should not use these flags, otherwise please generate a freeze file via 'cabal freeze'. -- GitLab