Compare commits
8 Commits
reenable-u
...
issue-360
| Author | SHA1 | Date | |
|---|---|---|---|
|
5787a662ed
|
|||
|
fce654f3c7
|
|||
|
0f052c3465
|
|||
|
a34d9b7b89
|
|||
|
4e62f559fa
|
|||
|
8c3d2b6740
|
|||
|
b6779f4d75
|
|||
|
02cd773c2a
|
@@ -1,5 +1,9 @@
|
||||
# Revision history for ghcup
|
||||
|
||||
## 0.1.17.8 -- XXXX-XX-XX
|
||||
|
||||
* Re-enable upgrade functionality for all configurations wrt [#250](https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/250)
|
||||
|
||||
## 0.1.17.7 -- 2022-04-21
|
||||
|
||||
* Fix `ghcup run` on windows wrt [#345](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/345)
|
||||
|
||||
@@ -61,6 +61,7 @@ data RunOptions = RunOptions
|
||||
, runHLSVer :: Maybe ToolVersion
|
||||
, runStackVer :: Maybe ToolVersion
|
||||
, runBinDir :: Maybe FilePath
|
||||
, runQuick :: Bool
|
||||
, runCOMMAND :: [String]
|
||||
}
|
||||
|
||||
@@ -70,8 +71,8 @@ data RunOptions = RunOptions
|
||||
--[ Parsers ]--
|
||||
---------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
runOpts :: Parser RunOptions
|
||||
runOpts =
|
||||
RunOptions
|
||||
@@ -121,6 +122,8 @@ runOpts =
|
||||
<> completer (bashCompleter "directory")
|
||||
)
|
||||
)
|
||||
<*> switch
|
||||
(short 'q' <> long "quick" <> help "Avoid any expensive work (such as downloads, version/tag resolution etc.). Disables --install.")
|
||||
<*> many (argument str (metavar "COMMAND" <> help "The command to run, with arguments (use longopts --). If omitted, just prints the created bin/ dir to stdout and exits."))
|
||||
|
||||
|
||||
@@ -219,29 +222,15 @@ run :: forall m.
|
||||
-> (ReaderT LeanAppState m () -> m ())
|
||||
-> m ExitCode
|
||||
run RunOptions{..} runAppState leanAppstate runLogger = do
|
||||
r <- if or (fmap (maybe False isToolTag) [runGHCVer, runCabalVer, runHLSVer, runStackVer]) || runInstTool'
|
||||
r <- if not runQuick
|
||||
then runRUN runAppState $ do
|
||||
toolchain <- liftE resolveToolchainFull
|
||||
tmp <- case runBinDir of
|
||||
Just bindir -> do
|
||||
liftIO $ createDirRecursive' bindir
|
||||
liftIO $ canonicalizePath bindir
|
||||
Nothing -> do
|
||||
d <- liftIO $ predictableTmpDir toolchain
|
||||
liftIO $ createDirRecursive' d
|
||||
liftIO $ canonicalizePath d
|
||||
tmp <- liftIO $ createTmpDir toolchain
|
||||
liftE $ installToolChainFull toolchain tmp
|
||||
pure tmp
|
||||
else runLeanRUN leanAppstate $ do
|
||||
toolchain <- resolveToolchain
|
||||
tmp <- case runBinDir of
|
||||
Just bindir -> do
|
||||
liftIO $ createDirRecursive' bindir
|
||||
liftIO $ canonicalizePath bindir
|
||||
Nothing -> do
|
||||
d <- liftIO $ predictableTmpDir toolchain
|
||||
liftIO $ createDirRecursive' d
|
||||
liftIO $ canonicalizePath d
|
||||
tmp <- liftIO $ createTmpDir toolchain
|
||||
liftE $ installToolChain toolchain tmp
|
||||
pure tmp
|
||||
case r of
|
||||
@@ -269,9 +258,16 @@ run RunOptions{..} runAppState leanAppstate runLogger = do
|
||||
|
||||
where
|
||||
|
||||
isToolTag :: ToolVersion -> Bool
|
||||
isToolTag (ToolTag _) = True
|
||||
isToolTag _ = False
|
||||
createTmpDir :: Toolchain -> IO FilePath
|
||||
createTmpDir toolchain =
|
||||
case runBinDir of
|
||||
Just bindir -> do
|
||||
createDirRecursive' bindir
|
||||
canonicalizePath bindir
|
||||
Nothing -> do
|
||||
d <- predictableTmpDir toolchain
|
||||
createDirRecursive' d
|
||||
canonicalizePath d
|
||||
|
||||
-- TODO: doesn't work for cross
|
||||
resolveToolchainFull :: ( MonadFail m
|
||||
|
||||
@@ -105,7 +105,8 @@ GHCup supports the following tools, which are also known as the **Haskell Toolch
|
||||
<table>
|
||||
<thead><tr><th>HLS Version</th><th>Tags</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>1.6.1.0</td><td><span style="color:blue">latest</span>, <span style="color:green">recommended</span></td></tr>
|
||||
<tr><td>1.7.0.0</td><td><span style="color:blue">latest</span>, <span style="color:green">recommended</span></td></tr>
|
||||
<tr><td>1.6.1.0</td><td></td></tr>
|
||||
<tr><td>1.6.0.0</td><td></td></tr>
|
||||
<tr><td>1.5.1</td><td></td></tr>
|
||||
<tr><td>1.5.0</td><td></td></tr>
|
||||
|
||||
@@ -239,7 +239,27 @@ if ($Silent -and !($InstallDir)) {
|
||||
}
|
||||
} else {
|
||||
while ($true) {
|
||||
Print-Msg -color Magenta -msg ('Where to install to (this should be a short Path, preferably a Drive like ''C:\''){1}Press enter to accept the default [{0}]:' -f $defaultGhcupBasePrefix, "`n")
|
||||
Print-Msg -color Magenta -msg (@'
|
||||
Welcome to Haskell!
|
||||
|
||||
This script will download and install the following programs:
|
||||
* ghcup - The Haskell toolchain installer
|
||||
* ghc - The Glasgow Haskell Compiler
|
||||
* msys2 - A linux-style toolchain environment required for many operations
|
||||
* cabal - The Cabal build tool for managing Haskell software
|
||||
* stack - (optional) A cross-platform program for developing Haskell projects
|
||||
* hls - (optional) A language server for developers to integrate with their editor/IDE
|
||||
|
||||
Please note that ANTIVIRUS may interfere with the installation. If you experience problems, consider
|
||||
disabling it temporarily.
|
||||
|
||||
Where to install to (this should be a short Path, preferably a Drive like 'C:\')?
|
||||
If you accept this path, binaries will be installed into '{0}ghcup\bin' and msys2 into '{0}ghcup\msys64'.
|
||||
Press enter to accept the default [{0}]:
|
||||
|
||||
'@ -f $defaultGhcupBasePrefix)
|
||||
|
||||
|
||||
$basePrefixPrompt = Read-Host
|
||||
$GhcupBasePrefix = ($defaultGhcupBasePrefix,$basePrefixPrompt)[[bool]$basePrefixPrompt]
|
||||
if (!($GhcupBasePrefix.EndsWith('\'))) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
resolver: lts-18.27
|
||||
resolver: lts-18.28
|
||||
|
||||
packages:
|
||||
- .
|
||||
|
||||
Reference in New Issue
Block a user