Compare commits

...

3 Commits

Author SHA1 Message Date
b245c11b1d Allow to disable self-upgrade functionality wrt #305 2022-01-28 23:08:35 +01:00
2ed047515e Merge remote-tracking branch 'origin/merge-requests/232' 2022-01-28 22:51:22 +01:00
Phil Ruffwind
2ebff1e887 Fix the indentation in env files
This changes the indentation from tabs to spaces, since tabs get
stripped by the heredoc.
2022-01-26 01:15:06 -08:00
4 changed files with 65 additions and 32 deletions

View File

@@ -15,7 +15,9 @@ module GHCup.OptParse (
, module GHCup.OptParse.Config , module GHCup.OptParse.Config
, module GHCup.OptParse.Whereis , module GHCup.OptParse.Whereis
, module GHCup.OptParse.List , module GHCup.OptParse.List
#ifndef DISABLE_UPGRADE
, module GHCup.OptParse.Upgrade , module GHCup.OptParse.Upgrade
#endif
, module GHCup.OptParse.ChangeLog , module GHCup.OptParse.ChangeLog
, module GHCup.OptParse.Prefetch , module GHCup.OptParse.Prefetch
, module GHCup.OptParse.GC , module GHCup.OptParse.GC
@@ -35,7 +37,9 @@ import GHCup.OptParse.Compile
import GHCup.OptParse.Config import GHCup.OptParse.Config
import GHCup.OptParse.Whereis import GHCup.OptParse.Whereis
import GHCup.OptParse.List import GHCup.OptParse.List
#ifndef DISABLE_UPGRADE
import GHCup.OptParse.Upgrade import GHCup.OptParse.Upgrade
#endif
import GHCup.OptParse.ChangeLog import GHCup.OptParse.ChangeLog
import GHCup.OptParse.Prefetch import GHCup.OptParse.Prefetch
import GHCup.OptParse.GC import GHCup.OptParse.GC
@@ -89,7 +93,9 @@ data Command
| Compile CompileCommand | Compile CompileCommand
| Config ConfigCommand | Config ConfigCommand
| Whereis WhereisOptions WhereisCommand | Whereis WhereisOptions WhereisCommand
#ifndef DISABLE_UPGRADE
| Upgrade UpgradeOpts Bool | Upgrade UpgradeOpts Bool
#endif
| ToolRequirements | ToolRequirements
| ChangeLog ChangeLogOptions | ChangeLog ChangeLogOptions
| Nuke | Nuke
@@ -208,6 +214,7 @@ com =
(info (List <$> listOpts <**> helper) (info (List <$> listOpts <**> helper)
(progDesc "Show available GHCs and other tools") (progDesc "Show available GHCs and other tools")
) )
#ifndef DISABLE_UPGRADE
<> command <> command
"upgrade" "upgrade"
(info (info
@@ -218,6 +225,7 @@ com =
) )
(progDesc "Upgrade ghcup") (progDesc "Upgrade ghcup")
) )
#endif
<> command <> command
"compile" "compile"
( Compile ( Compile

View File

@@ -140,7 +140,12 @@ main = do
<> hidden <> hidden
) )
let listCommands = infoOption let listCommands = infoOption
"install set rm install-cabal list upgrade compile debug-info tool-requirements changelog" ("install set rm install-cabal list"
#ifndef DISABLE_UPGRADE
<> " upgrade"
#endif
<> " compile debug-info tool-requirements changelog"
)
( long "list-commands" ( long "list-commands"
<> help "List available commands for shell completion" <> help "List available commands for shell completion"
<> internal <> internal
@@ -238,10 +243,14 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
alreadyInstalling' <- alreadyInstalling optCommand newTool alreadyInstalling' <- alreadyInstalling optCommand newTool
when (not alreadyInstalling') $ when (not alreadyInstalling') $
case t of case t of
#ifdef DISABLE_UPGRADE
GHCup -> pure ()
#else
GHCup -> runLogger $ GHCup -> runLogger $
logWarn ("New GHCup version available: " logWarn ("New GHCup version available: "
<> prettyVer l <> prettyVer l
<> ". To upgrade, run 'ghcup upgrade'") <> ". To upgrade, run 'ghcup upgrade'")
#endif
_ -> runLogger $ _ -> runLogger $
logWarn ("New " logWarn ("New "
<> T.pack (prettyShow t) <> T.pack (prettyShow t)
@@ -296,7 +305,9 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
Config configCommand -> config configCommand settings keybindings runLogger Config configCommand -> config configCommand settings keybindings runLogger
Whereis whereisOptions Whereis whereisOptions
whereisCommand -> whereis whereisCommand whereisOptions runAppState leanAppstate runLogger whereisCommand -> whereis whereisCommand whereisOptions runAppState leanAppstate runLogger
#ifndef DISABLE_UPGRADE
Upgrade uOpts force' -> upgrade uOpts force' dirs runAppState runLogger Upgrade uOpts force' -> upgrade uOpts force' dirs runAppState runLogger
#endif
ToolRequirements -> toolRequirements runAppState runLogger ToolRequirements -> toolRequirements runAppState runLogger
ChangeLog changelogOpts -> changelog changelogOpts runAppState runLogger ChangeLog changelogOpts -> changelog changelogOpts runAppState runLogger
Nuke -> nuke appState runLogger Nuke -> nuke appState runLogger
@@ -339,7 +350,9 @@ Report bugs at <https://gitlab.haskell.org/haskell/ghcup-hs/issues>|]
(HLS, ver) = cmp' HLS (Just $ ToolVersion (mkTVer over)) ver (HLS, ver) = cmp' HLS (Just $ ToolVersion (mkTVer over)) ver
alreadyInstalling (Compile (CompileHLS HLSCompileOptions{ targetHLS = Left tver })) alreadyInstalling (Compile (CompileHLS HLSCompileOptions{ targetHLS = Left tver }))
(HLS, ver) = cmp' HLS (Just $ ToolVersion (mkTVer tver)) ver (HLS, ver) = cmp' HLS (Just $ ToolVersion (mkTVer tver)) ver
#ifndef DISABLE_UPGRADE
alreadyInstalling (Upgrade _ _) (GHCup, _) = pure True alreadyInstalling (Upgrade _ _) (GHCup, _) = pure True
#endif
alreadyInstalling _ _ = pure False alreadyInstalling _ _ = pure False
cmp' :: ( HasLog env cmp' :: ( HasLog env

View File

@@ -48,6 +48,13 @@ flag no-exe
default: False default: False
manual: True manual: True
flag disable-upgrade
description:
Build the brick powered tui (ghcup tui). This is disabled on windows.
default: False
manual: True
library library
exposed-modules: exposed-modules:
GHCup GHCup
@@ -195,7 +202,6 @@ executable ghcup
GHCup.OptParse.Set GHCup.OptParse.Set
GHCup.OptParse.ToolRequirements GHCup.OptParse.ToolRequirements
GHCup.OptParse.UnSet GHCup.OptParse.UnSet
GHCup.OptParse.Upgrade
GHCup.OptParse.Whereis GHCup.OptParse.Whereis
hs-source-dirs: app/ghcup hs-source-dirs: app/ghcup
@@ -262,6 +268,12 @@ executable ghcup
if flag(no-exe) if flag(no-exe)
buildable: False buildable: False
if (flag(disable-upgrade))
cpp-options: -DDISABLE_UPGRADE
else
other-modules:
GHCup.OptParse.Upgrade
test-suite ghcup-test test-suite ghcup-test
type: exitcode-stdio-1.0 type: exitcode-stdio-1.0
main-is: Main.hs main-is: Main.hs

View File

@@ -281,18 +281,18 @@ download_ghcup() {
# we may overwrite this in adjust_bashrc # we may overwrite this in adjust_bashrc
cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file" cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file"
case ":\$PATH:" in case ":\$PATH:" in
*:"${GHCUP_BIN}":*) *:"${GHCUP_BIN}":*)
;; ;;
*) *)
export PATH="${GHCUP_BIN}:\$PATH" export PATH="${GHCUP_BIN}:\$PATH"
;; ;;
esac esac
case ":\$PATH:" in case ":\$PATH:" in
*:"\$HOME/.cabal/bin":*) *:"\$HOME/.cabal/bin":*)
;; ;;
*) *)
export PATH="\$HOME/.cabal/bin:\$PATH" export PATH="\$HOME/.cabal/bin:\$PATH"
;; ;;
esac esac
EOF EOF
@@ -382,36 +382,36 @@ adjust_bashrc() {
1) 1)
cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file" cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file"
case ":\$PATH:" in case ":\$PATH:" in
*:"${GHCUP_BIN}":*) *:"${GHCUP_BIN}":*)
;; ;;
*) *)
export PATH="${GHCUP_BIN}:\$PATH" export PATH="${GHCUP_BIN}:\$PATH"
;; ;;
esac esac
case ":\$PATH:" in case ":\$PATH:" in
*:"\$HOME/.cabal/bin":*) *:"\$HOME/.cabal/bin":*)
;; ;;
*) *)
export PATH="\$HOME/.cabal/bin:\$PATH" export PATH="\$HOME/.cabal/bin:\$PATH"
;; ;;
esac esac
EOF EOF
;; ;;
2) 2)
cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file" cat <<-EOF > "${GHCUP_DIR}"/env || die "Failed to create env file"
case ":\$PATH:" in case ":\$PATH:" in
*:"\$HOME/.cabal/bin":*) *:"\$HOME/.cabal/bin":*)
;; ;;
*) *)
export PATH="\$PATH:\$HOME/.cabal/bin" export PATH="\$PATH:\$HOME/.cabal/bin"
;; ;;
esac esac
case ":\$PATH:" in case ":\$PATH:" in
*:"${GHCUP_BIN}":*) *:"${GHCUP_BIN}":*)
;; ;;
*) *)
export PATH="\$PATH:${GHCUP_BIN}" export PATH="\$PATH:${GHCUP_BIN}"
;; ;;
esac esac
EOF EOF
;; ;;