Skip to content

Commit 6b801d1

Browse files
committed
Minor cleanup (withConfig)
1 parent 8cab3d1 commit 6b801d1

File tree

1 file changed

+21
-32
lines changed

1 file changed

+21
-32
lines changed

src/main/Main.hs

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
430440
withBuildConfig :: 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
496506
unpackCmd :: [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
506512
updateCmd :: () -> 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

514516
upgradeCmd :: 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
523521
uploadCmd :: [String] -> GlobalOpts -> IO ()
@@ -795,22 +793,13 @@ loadConfigWithOpts GlobalOpts{..} = do
795793

796794
-- | Project initialization
797795
initCmd :: 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
806799
newCmd :: 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
816805
solverCmd :: Bool -- ^ modify stack.yaml automatically?

0 commit comments

Comments
 (0)