From dd418dc8d75ebeded9d33f35b21fd5d05f4f9b6a Mon Sep 17 00:00:00 2001
From: Oleg Grenrus <oleg.grenrus@iki.fi>
Date: Thu, 19 Nov 2020 15:04:24 +0200
Subject: [PATCH] Remove v1-exec command

---
 cabal-install/cabal-install.cabal             |  1 -
 cabal-install/cabal-install.cabal.dev         |  1 -
 cabal-install/cabal-install.cabal.prod        |  1 -
 cabal-install/cabal-install.cabal.zinza       |  1 -
 cabal-install/main/Main.hs                    | 16 +----
 cabal-install/src/Distribution/Client/Exec.hs | 63 -------------------
 6 files changed, 1 insertion(+), 82 deletions(-)
 delete mode 100644 cabal-install/src/Distribution/Client/Exec.hs

diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index 2c9fdf391b..70e936ffb0 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -116,7 +116,6 @@ executable cabal
         Distribution.Client.Dependency
         Distribution.Client.Dependency.Types
         Distribution.Client.DistDirLayout
-        Distribution.Client.Exec
         Distribution.Client.Fetch
         Distribution.Client.FetchUtils
         Distribution.Client.FileMonitor
diff --git a/cabal-install/cabal-install.cabal.dev b/cabal-install/cabal-install.cabal.dev
index 58710e417e..5c51b28f9e 100644
--- a/cabal-install/cabal-install.cabal.dev
+++ b/cabal-install/cabal-install.cabal.dev
@@ -108,7 +108,6 @@ library cabal-lib-client
         Distribution.Client.Dependency
         Distribution.Client.Dependency.Types
         Distribution.Client.DistDirLayout
-        Distribution.Client.Exec
         Distribution.Client.Fetch
         Distribution.Client.FetchUtils
         Distribution.Client.FileMonitor
diff --git a/cabal-install/cabal-install.cabal.prod b/cabal-install/cabal-install.cabal.prod
index 2c9fdf391b..70e936ffb0 100644
--- a/cabal-install/cabal-install.cabal.prod
+++ b/cabal-install/cabal-install.cabal.prod
@@ -116,7 +116,6 @@ executable cabal
         Distribution.Client.Dependency
         Distribution.Client.Dependency.Types
         Distribution.Client.DistDirLayout
-        Distribution.Client.Exec
         Distribution.Client.Fetch
         Distribution.Client.FetchUtils
         Distribution.Client.FileMonitor
diff --git a/cabal-install/cabal-install.cabal.zinza b/cabal-install/cabal-install.cabal.zinza
index 48dd8ecda0..eee195a8a8 100644
--- a/cabal-install/cabal-install.cabal.zinza
+++ b/cabal-install/cabal-install.cabal.zinza
@@ -127,7 +127,6 @@ Version:            3.5.0.0
         Distribution.Client.Dependency
         Distribution.Client.Dependency.Types
         Distribution.Client.DistDirLayout
-        Distribution.Client.Exec
         Distribution.Client.Fetch
         Distribution.Client.FetchUtils
         Distribution.Client.FileMonitor
diff --git a/cabal-install/main/Main.hs b/cabal-install/main/Main.hs
index 92280e522a..ca21329cc1 100644
--- a/cabal-install/main/Main.hs
+++ b/cabal-install/main/Main.hs
@@ -39,7 +39,6 @@ import Distribution.Client.Setup
          , runCommand
          , InitFlags(initVerbosity, initHcPath), initCommand
          , ActAsSetupFlags(..), actAsSetupCommand
-         , ExecFlags(..), execCommand
          , UserConfigFlags(..), userConfigCommand
          , reportCommand
          , manpageCommand
@@ -94,7 +93,6 @@ import           Distribution.Client.CmdLegacy
 
 import Distribution.Client.Install            (install)
 import Distribution.Client.Configure          (configure, writeConfigFlags)
-import Distribution.Client.Exec               (exec)
 import Distribution.Client.Fetch              (fetch)
 import Distribution.Client.Freeze             (freeze)
 import Distribution.Client.GenBounds          (genBounds)
@@ -110,8 +108,7 @@ import Distribution.Client.Nix                (nixInstantiate
                                               )
 import Distribution.Client.Sandbox            (loadConfigOrSandboxConfig
                                               ,findSavedDistPref
-                                              ,updateInstallDirs
-                                              ,getPersistOrConfigCompiler)
+                                              ,updateInstallDirs)
 import Distribution.Client.Tar                (createTarGzFile)
 import Distribution.Client.Types.Credentials  (Password (..))
 import Distribution.Client.Init               (initCabal)
@@ -276,7 +273,6 @@ mainWorker args = do
       , legacyCmd runCommand runAction
       , legacyCmd testCommand testAction
       , legacyCmd benchmarkCommand benchmarkAction
-      , legacyCmd execCommand execAction
       , legacyCmd cleanCommand cleanAction
       , legacyCmd doctestCommand doctestAction
       , legacyWrapperCmd copyCommand copyVerbosity copyDistPref
@@ -952,16 +948,6 @@ initAction initFlags extraArgs globalFlags = do
             progdb
             initFlags'
 
-execAction :: ExecFlags -> [String] -> Action
-execAction execFlags extraArgs globalFlags = do
-  let verbosity = fromFlag (execVerbosity execFlags)
-  config <- loadConfigOrSandboxConfig verbosity globalFlags
-  distPref <- findSavedDistPref config (execDistPref execFlags)
-  let configFlags = savedConfigureFlags config
-      configFlags' = configFlags { configDistPref = Flag distPref }
-  (comp, platform, progdb) <- getPersistOrConfigCompiler configFlags'
-  exec verbosity comp platform progdb extraArgs
-
 userConfigAction :: UserConfigFlags -> [String] -> Action
 userConfigAction ucflags extraArgs globalFlags = do
   let verbosity  = fromFlag (userConfigVerbosity ucflags)
diff --git a/cabal-install/src/Distribution/Client/Exec.hs b/cabal-install/src/Distribution/Client/Exec.hs
deleted file mode 100644
index 86d0a6bfc1..0000000000
--- a/cabal-install/src/Distribution/Client/Exec.hs
+++ /dev/null
@@ -1,63 +0,0 @@
------------------------------------------------------------------------------
--- |
--- Module      :  Distribution.Client.Exec
--- Maintainer  :  cabal-devel@haskell.org
--- Portability :  portable
---
--- Implementation of the 'exec' command. Runs an arbitrary executable in an
--- environment suitable for making use of the sandbox.
------------------------------------------------------------------------------
-
-module Distribution.Client.Exec ( exec
-                                ) where
-
-import Prelude ()
-import Distribution.Client.Compat.Prelude
-
-import Distribution.Simple.Compiler    (Compiler)
-import Distribution.Simple.Program.Db  (ProgramDb, requireProgram, modifyProgramSearchPath)
-import Distribution.Simple.Program.Run (programInvocation, runProgramInvocation)
-import Distribution.Simple.Program.Types ( simpleProgram, ConfiguredProgram(..) )
-import Distribution.Simple.Utils       (die')
-
-import Distribution.System    (Platform(..))
-
--- | Execute the given command in the package's environment.
---
--- The given command is executed with GHC configured to use the correct
--- package database and with the sandbox bin directory added to the PATH.
-exec :: Verbosity
-     -> Compiler
-     -> Platform
-     -> ProgramDb
-     -> [String]
-     -> IO ()
-exec verbosity _comp _platform programDb extraArgs =
-    case extraArgs of
-        (exe:args) -> do
-            program <- requireProgram' verbosity programDb exe
-            env <- environmentOverrides (programOverrideEnv program)
-            let invocation = programInvocation
-                                 program { programOverrideEnv = env }
-                                 args
-            runProgramInvocation verbosity invocation
-
-        [] -> die' verbosity "Please specify an executable to run"
-  where
-    environmentOverrides env = return env
-
--- | Check that a program is configured and available to be run. If
--- a sandbox is available check in the sandbox's directory.
-requireProgram' :: Verbosity
-                -> ProgramDb
-                -> String
-                -> IO ConfiguredProgram
-requireProgram' verbosity programDb exe = do
-    (program, _) <- requireProgram
-                        verbosity
-                        (simpleProgram exe)
-                        updateSearchPath
-    return program
-  where
-    updateSearchPath =
-        flip modifyProgramSearchPath programDb $ \searchPath -> searchPath
-- 
GitLab