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
|
# 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
|
## 0.1.17.7 -- 2022-04-21
|
||||||
|
|
||||||
* Fix `ghcup run` on windows wrt [#345](https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/345)
|
* 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
|
, runHLSVer :: Maybe ToolVersion
|
||||||
, runStackVer :: Maybe ToolVersion
|
, runStackVer :: Maybe ToolVersion
|
||||||
, runBinDir :: Maybe FilePath
|
, runBinDir :: Maybe FilePath
|
||||||
|
, runQuick :: Bool
|
||||||
, runCOMMAND :: [String]
|
, runCOMMAND :: [String]
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,8 +71,8 @@ data RunOptions = RunOptions
|
|||||||
--[ Parsers ]--
|
--[ Parsers ]--
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
runOpts :: Parser RunOptions
|
runOpts :: Parser RunOptions
|
||||||
runOpts =
|
runOpts =
|
||||||
RunOptions
|
RunOptions
|
||||||
@@ -121,6 +122,8 @@ runOpts =
|
|||||||
<> completer (bashCompleter "directory")
|
<> 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."))
|
<*> 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 ())
|
-> (ReaderT LeanAppState m () -> m ())
|
||||||
-> m ExitCode
|
-> m ExitCode
|
||||||
run RunOptions{..} runAppState leanAppstate runLogger = do
|
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
|
then runRUN runAppState $ do
|
||||||
toolchain <- liftE resolveToolchainFull
|
toolchain <- liftE resolveToolchainFull
|
||||||
tmp <- case runBinDir of
|
tmp <- liftIO $ createTmpDir toolchain
|
||||||
Just bindir -> do
|
|
||||||
liftIO $ createDirRecursive' bindir
|
|
||||||
liftIO $ canonicalizePath bindir
|
|
||||||
Nothing -> do
|
|
||||||
d <- liftIO $ predictableTmpDir toolchain
|
|
||||||
liftIO $ createDirRecursive' d
|
|
||||||
liftIO $ canonicalizePath d
|
|
||||||
liftE $ installToolChainFull toolchain tmp
|
liftE $ installToolChainFull toolchain tmp
|
||||||
pure tmp
|
pure tmp
|
||||||
else runLeanRUN leanAppstate $ do
|
else runLeanRUN leanAppstate $ do
|
||||||
toolchain <- resolveToolchain
|
toolchain <- resolveToolchain
|
||||||
tmp <- case runBinDir of
|
tmp <- liftIO $ createTmpDir toolchain
|
||||||
Just bindir -> do
|
|
||||||
liftIO $ createDirRecursive' bindir
|
|
||||||
liftIO $ canonicalizePath bindir
|
|
||||||
Nothing -> do
|
|
||||||
d <- liftIO $ predictableTmpDir toolchain
|
|
||||||
liftIO $ createDirRecursive' d
|
|
||||||
liftIO $ canonicalizePath d
|
|
||||||
liftE $ installToolChain toolchain tmp
|
liftE $ installToolChain toolchain tmp
|
||||||
pure tmp
|
pure tmp
|
||||||
case r of
|
case r of
|
||||||
@@ -269,9 +258,16 @@ run RunOptions{..} runAppState leanAppstate runLogger = do
|
|||||||
|
|
||||||
where
|
where
|
||||||
|
|
||||||
isToolTag :: ToolVersion -> Bool
|
createTmpDir :: Toolchain -> IO FilePath
|
||||||
isToolTag (ToolTag _) = True
|
createTmpDir toolchain =
|
||||||
isToolTag _ = False
|
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
|
-- TODO: doesn't work for cross
|
||||||
resolveToolchainFull :: ( MonadFail m
|
resolveToolchainFull :: ( MonadFail m
|
||||||
|
|||||||
@@ -105,7 +105,8 @@ GHCup supports the following tools, which are also known as the **Haskell Toolch
|
|||||||
<table>
|
<table>
|
||||||
<thead><tr><th>HLS Version</th><th>Tags</th></tr></thead>
|
<thead><tr><th>HLS Version</th><th>Tags</th></tr></thead>
|
||||||
<tbody>
|
<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.6.0.0</td><td></td></tr>
|
||||||
<tr><td>1.5.1</td><td></td></tr>
|
<tr><td>1.5.1</td><td></td></tr>
|
||||||
<tr><td>1.5.0</td><td></td></tr>
|
<tr><td>1.5.0</td><td></td></tr>
|
||||||
|
|||||||
@@ -239,7 +239,27 @@ if ($Silent -and !($InstallDir)) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while ($true) {
|
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
|
$basePrefixPrompt = Read-Host
|
||||||
$GhcupBasePrefix = ($defaultGhcupBasePrefix,$basePrefixPrompt)[[bool]$basePrefixPrompt]
|
$GhcupBasePrefix = ($defaultGhcupBasePrefix,$basePrefixPrompt)[[bool]$basePrefixPrompt]
|
||||||
if (!($GhcupBasePrefix.EndsWith('\'))) {
|
if (!($GhcupBasePrefix.EndsWith('\'))) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
resolver: lts-18.27
|
resolver: lts-18.28
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
- .
|
- .
|
||||||
|
|||||||
Reference in New Issue
Block a user