Skip to content

Commit 735467e

Browse files
committed
Use the default install directory (installdir) if not specified.
This change updates the `cabal install` command to use the default install directory for executables if one was not specified in either Cabal's config file or on the command line with the --installdir flag. Previously this would error out, now it warns that it used the default and continues. PR #6624, resolves #5973.
1 parent 762805a commit 735467e

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

cabal-install/Distribution/Client/CmdInstall.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ import Distribution.Simple.BuildPaths
6464
import Distribution.Simple.Program.Find
6565
( ProgramSearchPathEntry(..) )
6666
import Distribution.Client.Config
67-
( getCabalDir, loadConfig, SavedConfig(..) )
67+
( defaultInstallPath, getCabalDir, loadConfig, SavedConfig(..) )
6868
import qualified Distribution.Simple.PackageIndex as PI
6969
import Distribution.Solver.Types.PackageIndex
7070
( lookupPackageName, searchByName )
@@ -642,6 +642,7 @@ installExes
642642
-> IO ()
643643
installExes verbosity baseCtx buildCtx platform compiler
644644
configFlags clientInstallFlags = do
645+
installPath <- defaultInstallPath
645646
let storeDirLayout = cabalStoreDirLayout $ cabalDirLayout baseCtx
646647

647648
prefix = fromFlagOrDefault "" (fmap InstallDirs.fromPathTemplate (configProgPrefix configFlags))
@@ -659,9 +660,10 @@ installExes verbosity baseCtx buildCtx platform compiler
659660
mkFinalExeName exe = prefix <> unUnqualComponentName exe <> suffix <.> exeExtension platform
660661
installdirUnknown =
661662
"installdir is not defined. Set it in your cabal config file "
662-
++ "or use --installdir=<path>"
663+
++ "or use --installdir=<path>. Using default installdir: " ++ show installPath
663664

664-
installdir <- fromFlagOrDefault (die' verbosity installdirUnknown) $
665+
installdir <- fromFlagOrDefault
666+
(warn verbosity installdirUnknown >> pure installPath) $
665667
pure <$> cinstInstalldir clientInstallFlags
666668
createDirectoryIfMissingVerbose verbosity False installdir
667669
warnIfNoExes verbosity buildCtx

cabal-install/Distribution/Client/Config.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ module Distribution.Client.Config (
2626
defaultConfigFile,
2727
defaultCacheDir,
2828
defaultCompiler,
29+
defaultInstallPath,
2930
defaultLogsDir,
3031
defaultUserInstall,
3132

0 commit comments

Comments
 (0)