Add a --set option to install/compile, fixes #81
This commit is contained in:
parent
4fef93b7b1
commit
c76cce5830
@ -122,6 +122,7 @@ data InstallOptions = InstallOptions
|
|||||||
{ instVer :: Maybe ToolVersion
|
{ instVer :: Maybe ToolVersion
|
||||||
, instPlatform :: Maybe PlatformRequest
|
, instPlatform :: Maybe PlatformRequest
|
||||||
, instBindist :: Maybe URI
|
, instBindist :: Maybe URI
|
||||||
|
, instSet :: Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
data SetCommand = SetGHC SetOptions
|
data SetCommand = SetGHC SetOptions
|
||||||
@ -158,6 +159,7 @@ data GHCCompileOptions = GHCCompileOptions
|
|||||||
, patchDir :: Maybe (Path Abs)
|
, patchDir :: Maybe (Path Abs)
|
||||||
, crossTarget :: Maybe Text
|
, crossTarget :: Maybe Text
|
||||||
, addConfArgs :: [Text]
|
, addConfArgs :: [Text]
|
||||||
|
, setCompile :: Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
data CabalCompileOptions = CabalCompileOptions
|
data CabalCompileOptions = CabalCompileOptions
|
||||||
@ -470,7 +472,7 @@ Examples:
|
|||||||
|
|
||||||
installOpts :: Parser InstallOptions
|
installOpts :: Parser InstallOptions
|
||||||
installOpts =
|
installOpts =
|
||||||
(\p (u, v) -> InstallOptions v p u)
|
(\p (u, v) b -> InstallOptions v p u b)
|
||||||
<$> (optional
|
<$> (optional
|
||||||
(option
|
(option
|
||||||
(eitherReader platformParser)
|
(eitherReader platformParser)
|
||||||
@ -495,6 +497,12 @@ installOpts =
|
|||||||
)
|
)
|
||||||
<|> ((,) <$> pure Nothing <*> optional toolVersionArgument)
|
<|> ((,) <$> pure Nothing <*> optional toolVersionArgument)
|
||||||
)
|
)
|
||||||
|
<*> flag
|
||||||
|
False
|
||||||
|
True
|
||||||
|
(long "set" <> help
|
||||||
|
"Set as active version after install"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
setParser :: Parser (Either SetCommand SetOptions)
|
setParser :: Parser (Either SetCommand SetOptions)
|
||||||
@ -664,7 +672,7 @@ Examples:
|
|||||||
|
|
||||||
ghcCompileOpts :: Parser GHCCompileOptions
|
ghcCompileOpts :: Parser GHCCompileOptions
|
||||||
ghcCompileOpts =
|
ghcCompileOpts =
|
||||||
(\CabalCompileOptions {..} crossTarget addConfArgs -> GHCCompileOptions { .. }
|
(\CabalCompileOptions {..} crossTarget addConfArgs setCompile -> GHCCompileOptions { .. }
|
||||||
)
|
)
|
||||||
<$> cabalCompileOpts
|
<$> cabalCompileOpts
|
||||||
<*> (optional
|
<*> (optional
|
||||||
@ -676,6 +684,12 @@ ghcCompileOpts =
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
<*> many (argument str (metavar "CONFIGURE_ARGS" <> help "Additional arguments to configure, prefix with '-- ' (longopts)"))
|
<*> many (argument str (metavar "CONFIGURE_ARGS" <> help "Additional arguments to configure, prefix with '-- ' (longopts)"))
|
||||||
|
<*> flag
|
||||||
|
False
|
||||||
|
True
|
||||||
|
(long "set" <> help
|
||||||
|
"Set as active version after install"
|
||||||
|
)
|
||||||
|
|
||||||
cabalCompileOpts :: Parser CabalCompileOptions
|
cabalCompileOpts :: Parser CabalCompileOptions
|
||||||
cabalCompileOpts =
|
cabalCompileOpts =
|
||||||
@ -1158,12 +1172,14 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
|
|||||||
Nothing -> runInstTool $ do
|
Nothing -> runInstTool $ do
|
||||||
v <- liftE $ fromVersion dls instVer GHC
|
v <- liftE $ fromVersion dls instVer GHC
|
||||||
liftE $ installGHCBin dls (_tvVersion v) (fromMaybe pfreq instPlatform)
|
liftE $ installGHCBin dls (_tvVersion v) (fromMaybe pfreq instPlatform)
|
||||||
|
when instSet $ void $ liftE $ setGHC v SetGHCOnly
|
||||||
Just uri -> runInstTool' appstate{ settings = settings {noVerify = True}} $ do
|
Just uri -> runInstTool' appstate{ settings = settings {noVerify = True}} $ do
|
||||||
v <- liftE $ fromVersion dls instVer GHC
|
v <- liftE $ fromVersion dls instVer GHC
|
||||||
liftE $ installGHCBindist
|
liftE $ installGHCBindist
|
||||||
(DownloadInfo uri (Just $ RegexDir "ghc-.*") "")
|
(DownloadInfo uri (Just $ RegexDir "ghc-.*") "")
|
||||||
(_tvVersion v)
|
(_tvVersion v)
|
||||||
(fromMaybe pfreq instPlatform)
|
(fromMaybe pfreq instPlatform)
|
||||||
|
when instSet $ void $ liftE $ setGHC v SetGHCOnly
|
||||||
)
|
)
|
||||||
>>= \case
|
>>= \case
|
||||||
VRight _ -> do
|
VRight _ -> do
|
||||||
@ -1376,7 +1392,8 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
|
|||||||
pure $ ExitFailure 8
|
pure $ ExitFailure 8
|
||||||
|
|
||||||
Compile (CompileGHC GHCCompileOptions {..}) ->
|
Compile (CompileGHC GHCCompileOptions {..}) ->
|
||||||
(runCompileGHC $ liftE $ compileGHC dls
|
(runCompileGHC $ do
|
||||||
|
liftE $ compileGHC dls
|
||||||
(GHCTargetVersion crossTarget targetVer)
|
(GHCTargetVersion crossTarget targetVer)
|
||||||
bootstrapGhc
|
bootstrapGhc
|
||||||
jobs
|
jobs
|
||||||
@ -1384,6 +1401,8 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
|
|||||||
patchDir
|
patchDir
|
||||||
addConfArgs
|
addConfArgs
|
||||||
pfreq
|
pfreq
|
||||||
|
when setCompile $ void $ liftE
|
||||||
|
$ setGHC (GHCTargetVersion crossTarget targetVer) SetGHCOnly
|
||||||
)
|
)
|
||||||
>>= \case
|
>>= \case
|
||||||
VRight _ -> do
|
VRight _ -> do
|
||||||
|
Loading…
Reference in New Issue
Block a user