Compare commits
1 Commits
improve-pw
...
issue-354
| Author | SHA1 | Date | |
|---|---|---|---|
|
9daca301a0
|
@@ -283,7 +283,7 @@ hlsCompileOpts =
|
|||||||
(short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help
|
(short 'g' <> long "git-ref" <> metavar "GIT_REFERENCE" <> help
|
||||||
"The git commit/branch/ref to build from"
|
"The git commit/branch/ref to build from"
|
||||||
) <*>
|
) <*>
|
||||||
optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to HLS upstream)"
|
optional (option str (short 'r' <> long "repository" <> metavar "GIT_REPOSITORY" <> help "The git repository to build from (defaults to GHC upstream)"
|
||||||
<> completer (gitFileUri ["https://github.com/haskell/haskell-language-server.git"])
|
<> completer (gitFileUri ["https://github.com/haskell/haskell-language-server.git"])
|
||||||
))
|
))
|
||||||
)))
|
)))
|
||||||
|
|||||||
@@ -105,8 +105,7 @@ 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.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><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>
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ The Glorious Glasgow Haskell Compilation System, version 8.10.7
|
|||||||
If this fails, consult [the Getting started page](../install) for information on
|
If this fails, consult [the Getting started page](../install) for information on
|
||||||
how to install Haskell on your computer.
|
how to install Haskell on your computer.
|
||||||
|
|
||||||
This guide is partly based on [Gil Mizrahi's blog](https://gilmi.me/blog/post/2021/08/14/hs-core-tools).
|
|
||||||
|
|
||||||
## Compiling programs with ghc
|
## Compiling programs with ghc
|
||||||
|
|
||||||
Running `ghc` invokes the Glasgow Haskell Compiler (GHC), and can be used to
|
Running `ghc` invokes the Glasgow Haskell Compiler (GHC), and can be used to
|
||||||
@@ -328,7 +326,6 @@ see the [Cabal user guide](https://cabal.readthedocs.io/en/stable/getting-starte
|
|||||||
<a href="https://hackage.haskell.org/" class="btn btn-primary" role="button">Discover Haskell packages</a>
|
<a href="https://hackage.haskell.org/" class="btn btn-primary" role="button">Discover Haskell packages</a>
|
||||||
<a href="https://hackage.haskell.org/package/base" class="btn btn-primary" role="button">The standard library</a>
|
<a href="https://hackage.haskell.org/package/base" class="btn btn-primary" role="button">The standard library</a>
|
||||||
<a href="https://haskell-language-server.readthedocs.io/en/stable/installation.html" class="btn btn-primary" role="button">Editor setup with HLS</a>
|
<a href="https://haskell-language-server.readthedocs.io/en/stable/installation.html" class="btn btn-primary" role="button">Editor setup with HLS</a>
|
||||||
<a href="https://play-haskell.tomsmeding.com/play" class="btn btn-primary" role="button">Online playground</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## How to learn Haskell proper
|
## How to learn Haskell proper
|
||||||
|
|||||||
@@ -2603,7 +2603,7 @@ upgradeGHCup mtarget force' = do
|
|||||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||||
|
|
||||||
lift $ logInfo "Upgrading GHCup..."
|
lift $ logInfo "Upgrading GHCup..."
|
||||||
let latestVer = fst (fromJust (getLatest dls GHCup))
|
let latestVer = fromJust $ fst <$> getLatest dls GHCup
|
||||||
(Just ghcupPVPVer) <- pure $ pvpToVersion ghcUpVer ""
|
(Just ghcupPVPVer) <- pure $ pvpToVersion ghcUpVer ""
|
||||||
when (not force' && (latestVer <= ghcupPVPVer)) $ throwE NoUpdate
|
when (not force' && (latestVer <= ghcupPVPVer)) $ throwE NoUpdate
|
||||||
dli <- liftE $ getDownloadInfo GHCup latestVer
|
dli <- liftE $ getDownloadInfo GHCup latestVer
|
||||||
|
|||||||
@@ -317,10 +317,10 @@ ghcSet mtarget = do
|
|||||||
MP.setInput rest
|
MP.setInput rest
|
||||||
pure x
|
pure x
|
||||||
)
|
)
|
||||||
<* MP.some pathSep
|
<* pathSep
|
||||||
<* MP.takeRest
|
<* MP.takeRest
|
||||||
<* MP.eof
|
<* MP.eof
|
||||||
ghcSubPath = MP.some pathSep <* MP.chunk "ghc" *> MP.some pathSep
|
ghcSubPath = pathSep <* MP.chunk "ghc" *> pathSep
|
||||||
|
|
||||||
-- | Get all installed GHCs by reading ~/.ghcup/ghc/<dir>.
|
-- | Get all installed GHCs by reading ~/.ghcup/ghc/<dir>.
|
||||||
-- If a dir cannot be parsed, returns left.
|
-- If a dir cannot be parsed, returns left.
|
||||||
@@ -398,10 +398,10 @@ cabalSet = do
|
|||||||
cabalParse = MP.chunk "cabal-" *> version'
|
cabalParse = MP.chunk "cabal-" *> version'
|
||||||
-- parses any path component ending with path separator,
|
-- parses any path component ending with path separator,
|
||||||
-- e.g. "foo/"
|
-- e.g. "foo/"
|
||||||
stripPathComponet = parseUntil1 pathSep *> MP.some pathSep
|
stripPathComponet = parseUntil1 pathSep *> pathSep
|
||||||
-- parses an absolute path up until the last path separator,
|
-- parses an absolute path up until the last path separator,
|
||||||
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
||||||
stripAbsolutePath = MP.some pathSep *> MP.many (MP.try stripPathComponet)
|
stripAbsolutePath = pathSep *> MP.many (MP.try stripPathComponet)
|
||||||
-- parses a relative path up until the last path separator,
|
-- parses a relative path up until the last path separator,
|
||||||
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
||||||
stripRelativePath = MP.many (MP.try stripPathComponet)
|
stripRelativePath = MP.many (MP.try stripPathComponet)
|
||||||
@@ -492,10 +492,10 @@ stackSet = do
|
|||||||
cabalParse = MP.chunk "stack-" *> version'
|
cabalParse = MP.chunk "stack-" *> version'
|
||||||
-- parses any path component ending with path separator,
|
-- parses any path component ending with path separator,
|
||||||
-- e.g. "foo/"
|
-- e.g. "foo/"
|
||||||
stripPathComponet = parseUntil1 pathSep *> MP.some pathSep
|
stripPathComponet = parseUntil1 pathSep *> pathSep
|
||||||
-- parses an absolute path up until the last path separator,
|
-- parses an absolute path up until the last path separator,
|
||||||
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
||||||
stripAbsolutePath = MP.some pathSep *> MP.many (MP.try stripPathComponet)
|
stripAbsolutePath = pathSep *> MP.many (MP.try stripPathComponet)
|
||||||
-- parses a relative path up until the last path separator,
|
-- parses a relative path up until the last path separator,
|
||||||
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
||||||
stripRelativePath = MP.many (MP.try stripPathComponet)
|
stripRelativePath = MP.many (MP.try stripPathComponet)
|
||||||
@@ -543,10 +543,10 @@ hlsSet = do
|
|||||||
cabalParse = MP.chunk "haskell-language-server-wrapper-" *> version'
|
cabalParse = MP.chunk "haskell-language-server-wrapper-" *> version'
|
||||||
-- parses any path component ending with path separator,
|
-- parses any path component ending with path separator,
|
||||||
-- e.g. "foo/"
|
-- e.g. "foo/"
|
||||||
stripPathComponet = parseUntil1 pathSep *> MP.some pathSep
|
stripPathComponet = parseUntil1 pathSep *> pathSep
|
||||||
-- parses an absolute path up until the last path separator,
|
-- parses an absolute path up until the last path separator,
|
||||||
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
-- e.g. "/bar/baz/foo" -> "/bar/baz/", leaving "foo"
|
||||||
stripAbsolutePath = MP.some pathSep *> MP.many (MP.try stripPathComponet)
|
stripAbsolutePath = pathSep *> MP.many (MP.try stripPathComponet)
|
||||||
-- parses a relative path up until the last path separator,
|
-- parses a relative path up until the last path separator,
|
||||||
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
-- e.g. "bar/baz/foo" -> "bar/baz/", leaving "foo"
|
||||||
stripRelativePath = MP.many (MP.try stripPathComponet)
|
stripRelativePath = MP.many (MP.try stripPathComponet)
|
||||||
|
|||||||
@@ -126,10 +126,10 @@ _eghcup() {
|
|||||||
fi
|
fi
|
||||||
if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then
|
if [ -z "${BOOTSTRAP_HASKELL_VERBOSE}" ] ; then
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
"${GHCUP_BIN}/ghcup" ${args} "$@"
|
"ghcup" ${args} "$@"
|
||||||
else
|
else
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
"${GHCUP_BIN}/ghcup" ${args} --verbose "$@"
|
"ghcup" ${args} --verbose "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,99 +228,100 @@ posix_realpath() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
download_ghcup() {
|
download_ghcup() {
|
||||||
|
if ! command -V "ghcup" >/dev/null 2>&1 ; then
|
||||||
|
case "${plat}" in
|
||||||
|
"linux"|"Linux")
|
||||||
|
case "${arch}" in
|
||||||
|
x86_64|amd64)
|
||||||
|
# we could be in a 32bit docker container, in which
|
||||||
|
# case uname doesn't give us what we want
|
||||||
|
if [ "$(getconf LONG_BIT)" = "32" ] ; then
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
|
||||||
|
elif [ "$(getconf LONG_BIT)" = "64" ] ; then
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-linux-ghcup-${ghver}
|
||||||
|
else
|
||||||
|
die "Unknown long bit size: $(getconf LONG_BIT)"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
i*86)
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
|
||||||
|
;;
|
||||||
|
armv7*|*armv8l*)
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
|
||||||
|
;;
|
||||||
|
aarch64|arm64)
|
||||||
|
# we could be in a 32bit docker container, in which
|
||||||
|
# case uname doesn't give us what we want
|
||||||
|
if [ "$(getconf LONG_BIT)" = "32" ] ; then
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
|
||||||
|
elif [ "$(getconf LONG_BIT)" = "64" ] ; then
|
||||||
|
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-linux-ghcup-${ghver}
|
||||||
|
else
|
||||||
|
die "Unknown long bit size: $(getconf LONG_BIT)"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*) die "Unknown architecture: ${arch}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
"FreeBSD"|"freebsd")
|
||||||
|
if freebsd-version | grep -E '^12.*' ; then
|
||||||
|
freebsd_ver=12
|
||||||
|
elif freebsd-version | grep -E '^13.*' ; then
|
||||||
|
freebsd_ver=13
|
||||||
|
else
|
||||||
|
die "Unsupported FreeBSD version! Please report a bug at https://gitlab.haskell.org/haskell/ghcup-hs/-/issues"
|
||||||
|
fi
|
||||||
|
|
||||||
case "${plat}" in
|
case "${arch}" in
|
||||||
"linux"|"Linux")
|
x86_64|amd64)
|
||||||
case "${arch}" in
|
;;
|
||||||
x86_64|amd64)
|
i*86)
|
||||||
# we could be in a 32bit docker container, in which
|
die "i386 currently not supported!"
|
||||||
# case uname doesn't give us what we want
|
;;
|
||||||
if [ "$(getconf LONG_BIT)" = "32" ] ; then
|
*) die "Unknown architecture: ${arch}"
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
|
;;
|
||||||
elif [ "$(getconf LONG_BIT)" = "64" ] ; then
|
esac
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-linux-ghcup-${ghver}
|
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-freebsd${freebsd_ver}-ghcup-${ghver}
|
||||||
else
|
;;
|
||||||
die "Unknown long bit size: $(getconf LONG_BIT)"
|
"Darwin"|"darwin")
|
||||||
fi
|
case "${arch}" in
|
||||||
;;
|
x86_64|amd64)
|
||||||
i*86)
|
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-apple-darwin-ghcup-${ghver}
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/i386-linux-ghcup-${ghver}
|
;;
|
||||||
;;
|
aarch64|arm64|armv8l)
|
||||||
armv7*|*armv8l*)
|
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-apple-darwin-ghcup-${ghver}
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
|
;;
|
||||||
;;
|
i*86)
|
||||||
aarch64|arm64)
|
die "i386 currently not supported!"
|
||||||
# we could be in a 32bit docker container, in which
|
;;
|
||||||
# case uname doesn't give us what we want
|
*) die "Unknown architecture: ${arch}"
|
||||||
if [ "$(getconf LONG_BIT)" = "32" ] ; then
|
;;
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/armv7-linux-ghcup-${ghver}
|
esac
|
||||||
elif [ "$(getconf LONG_BIT)" = "64" ] ; then
|
;;
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-linux-ghcup-${ghver}
|
MSYS*|MINGW*)
|
||||||
else
|
case "${arch}" in
|
||||||
die "Unknown long bit size: $(getconf LONG_BIT)"
|
x86_64|amd64)
|
||||||
fi
|
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-mingw64-ghcup-${ghver}.exe
|
||||||
;;
|
;;
|
||||||
*) die "Unknown architecture: ${arch}"
|
*) die "Unknown architecture: ${arch}"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
"FreeBSD"|"freebsd")
|
*) die "Unknown platform: ${plat}"
|
||||||
if freebsd-version | grep -E '^12.*' ; then
|
;;
|
||||||
freebsd_ver=12
|
esac
|
||||||
elif freebsd-version | grep -E '^13.*' ; then
|
case "${plat}" in
|
||||||
freebsd_ver=13
|
MSYS*|MINGW*)
|
||||||
else
|
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup.exe
|
||||||
die "Unsupported FreeBSD version! Please report a bug at https://gitlab.haskell.org/haskell/ghcup-hs/-/issues"
|
edo chmod +x "${GHCUP_BIN}"/ghcup.exe
|
||||||
fi
|
;;
|
||||||
|
*)
|
||||||
case "${arch}" in
|
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup
|
||||||
x86_64|amd64)
|
edo chmod +x "${GHCUP_BIN}"/ghcup
|
||||||
;;
|
;;
|
||||||
i*86)
|
esac
|
||||||
die "i386 currently not supported!"
|
fi
|
||||||
;;
|
|
||||||
*) die "Unknown architecture: ${arch}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-freebsd${freebsd_ver}-ghcup-${ghver}
|
|
||||||
;;
|
|
||||||
"Darwin"|"darwin")
|
|
||||||
case "${arch}" in
|
|
||||||
x86_64|amd64)
|
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-apple-darwin-ghcup-${ghver}
|
|
||||||
;;
|
|
||||||
aarch64|arm64|armv8l)
|
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/aarch64-apple-darwin-ghcup-${ghver}
|
|
||||||
;;
|
|
||||||
i*86)
|
|
||||||
die "i386 currently not supported!"
|
|
||||||
;;
|
|
||||||
*) die "Unknown architecture: ${arch}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
MSYS*|MINGW*)
|
|
||||||
case "${arch}" in
|
|
||||||
x86_64|amd64)
|
|
||||||
_url=${GHCUP_BASE_URL}/${ghver}/x86_64-mingw64-ghcup-${ghver}.exe
|
|
||||||
;;
|
|
||||||
*) die "Unknown architecture: ${arch}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*) die "Unknown platform: ${plat}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
case "${plat}" in
|
|
||||||
MSYS*|MINGW*)
|
|
||||||
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup.exe
|
|
||||||
edo chmod +x "${GHCUP_BIN}"/ghcup.exe
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
edo curl -Lf "${_url}" > "${GHCUP_BIN}"/ghcup
|
|
||||||
edo chmod +x "${GHCUP_BIN}"/ghcup
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
edo mkdir -p "${GHCUP_DIR}"
|
edo mkdir -p "${GHCUP_DIR}"
|
||||||
|
|
||||||
@@ -344,7 +345,9 @@ download_ghcup() {
|
|||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
edo . "${GHCUP_DIR}"/env
|
edo . "${GHCUP_DIR}"/env
|
||||||
eghcup upgrade
|
if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then
|
||||||
|
ghcup upgrade || yellow "Failed to upgrade ghcup, continuing anyway"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Figures out the users login shell and sets
|
# Figures out the users login shell and sets
|
||||||
@@ -733,13 +736,7 @@ fi
|
|||||||
|
|
||||||
edo mkdir -p "${GHCUP_BIN}"
|
edo mkdir -p "${GHCUP_BIN}"
|
||||||
|
|
||||||
if command -V "ghcup" >/dev/null 2>&1 ; then
|
download_ghcup
|
||||||
if [ -z "${BOOTSTRAP_HASKELL_NO_UPGRADE}" ] ; then
|
|
||||||
_eghcup upgrade || download_ghcup
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
download_ghcup
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
if [ -n "${BOOTSTRAP_HASKELL_YAML}" ] ; then (>&2 ghcup -s "${BOOTSTRAP_HASKELL_YAML}" tool-requirements) ; else (>&2 ghcup tool-requirements) ; fi
|
if [ -n "${BOOTSTRAP_HASKELL_YAML}" ] ; then (>&2 ghcup -s "${BOOTSTRAP_HASKELL_YAML}" tool-requirements) ; else (>&2 ghcup tool-requirements) ; fi
|
||||||
|
|||||||
@@ -239,27 +239,7 @@ if ($Silent -and !($InstallDir)) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while ($true) {
|
while ($true) {
|
||||||
Print-Msg -color Magenta -msg (@'
|
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")
|
||||||
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 not 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('\'))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user