@@ -427,6 +427,16 @@ setupCmd SetupCmdOpts{..} go@GlobalOpts{..} = do
427427 <> T. pack (intercalate [searchPathSeparator] ps)
428428 )
429429
430+ withConfig :: GlobalOpts
431+ -> StackT Config IO ()
432+ -> IO ()
433+ withConfig go@ GlobalOpts {.. } inner = do
434+ (manager, lc) <- loadConfigWithOpts go
435+ runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
436+ Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
437+ runStackT manager globalLogLevel (lcConfig lc) globalTerminal
438+ inner
439+
430440withBuildConfig :: GlobalOpts
431441 -> NoBuildConfigStrategy
432442 -> StackT EnvConfig IO ()
@@ -494,30 +504,18 @@ installCmd opts go@GlobalOpts{..} = withBuildConfig go ExecStrategy $
494504
495505-- | Unpack packages to the filesystem
496506unpackCmd :: [String ] -> GlobalOpts -> IO ()
497- unpackCmd names go@ GlobalOpts {.. } = do
498- (manager,lc) <- loadConfigWithOpts go
499- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
500- Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
501- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $ do
502- menv <- getMinimalEnvOverride
503- Stack.Fetch. unpackPackages menv " ." names
507+ unpackCmd names go = withConfig go $ do
508+ menv <- getMinimalEnvOverride
509+ Stack.Fetch. unpackPackages menv " ." names
504510
505511-- | Update the package index
506512updateCmd :: () -> GlobalOpts -> IO ()
507- updateCmd () go@ GlobalOpts {.. } = do
508- (manager,lc) <- loadConfigWithOpts go
509- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
510- Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
511- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
512- getMinimalEnvOverride >>= Stack.PackageIndex. updateAllIndices
513+ updateCmd () go = withConfig go $
514+ getMinimalEnvOverride >>= Stack.PackageIndex. updateAllIndices
513515
514516upgradeCmd :: Bool -> GlobalOpts -> IO ()
515- upgradeCmd fromGit go@ GlobalOpts {.. } = do
516- (manager,lc) <- loadConfigWithOpts go
517- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
518- Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
519- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
520- upgrade fromGit globalResolver
517+ upgradeCmd fromGit go = withConfig go $
518+ upgrade fromGit (globalResolver go)
521519
522520-- | Upload to Hackage
523521uploadCmd :: [String ] -> GlobalOpts -> IO ()
@@ -795,22 +793,13 @@ loadConfigWithOpts GlobalOpts{..} = do
795793
796794-- | Project initialization
797795initCmd :: InitOpts -> GlobalOpts -> IO ()
798- initCmd initOpts go@ GlobalOpts {.. } = do
799- (manager,lc) <- loadConfigWithOpts go
800- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
801- Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
802- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
803- initProject initOpts
796+ initCmd initOpts go = withConfig go $ initProject initOpts
804797
805798-- | Project creation
806799newCmd :: InitOpts -> GlobalOpts -> IO ()
807- newCmd initOpts go@ GlobalOpts {.. } = do
808- (manager,lc) <- loadConfigWithOpts go
809- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $
810- Docker. rerunWithOptionalContainer (lcProjectRoot lc) $
811- runStackT manager globalLogLevel (lcConfig lc) globalTerminal $ do
812- newProject
813- initProject initOpts
800+ newCmd initOpts go@ GlobalOpts {.. } = withConfig go $ do
801+ newProject
802+ initProject initOpts
814803
815804-- | Fix up extra-deps for a project
816805solverCmd :: Bool -- ^ modify stack.yaml automatically?
0 commit comments