Compare commits

..

1 Commits

Author SHA1 Message Date
b16e561384 Allow unpacking legacy lzma archives, fixes #307 2022-01-28 22:48:23 +01:00
5 changed files with 34 additions and 67 deletions

View File

@@ -15,9 +15,7 @@ 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
@@ -37,9 +35,7 @@ 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
@@ -93,9 +89,7 @@ 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
@@ -214,7 +208,6 @@ 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
@@ -225,7 +218,6 @@ com =
) )
(progDesc "Upgrade ghcup") (progDesc "Upgrade ghcup")
) )
#endif
<> command <> command
"compile" "compile"
( Compile ( Compile

View File

@@ -140,12 +140,7 @@ main = do
<> hidden <> hidden
) )
let listCommands = infoOption let listCommands = infoOption
("install set rm install-cabal list" "install set rm install-cabal list upgrade compile debug-info tool-requirements changelog"
#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
@@ -243,14 +238,10 @@ 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)
@@ -305,9 +296,7 @@ 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
@@ -350,9 +339,7 @@ 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,13 +48,6 @@ 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
@@ -202,6 +195,7 @@ 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
@@ -268,12 +262,6 @@ 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

@@ -715,7 +715,7 @@ unpackToDir dfp av = do
(untar . GZip.decompress =<< rf av) (untar . GZip.decompress =<< rf av)
| ".tar.xz" `isSuffixOf` fn -> do | ".tar.xz" `isSuffixOf` fn -> do
filecontents <- liftE $ rf av filecontents <- liftE $ rf av
let decompressed = Lzma.decompress filecontents let decompressed = Lzma.decompressWith (Lzma.defaultDecompressParams { Lzma.decompressAutoDecoder= True }) filecontents
liftE $ untar decompressed liftE $ untar decompressed
| ".tar.bz2" `isSuffixOf` fn -> | ".tar.bz2" `isSuffixOf` fn ->
liftE (untar . BZip.decompress =<< rf av) liftE (untar . BZip.decompress =<< rf av)
@@ -744,7 +744,7 @@ getArchiveFiles av = do
(entries . GZip.decompress =<< rf av) (entries . GZip.decompress =<< rf av)
| ".tar.xz" `isSuffixOf` fn -> do | ".tar.xz" `isSuffixOf` fn -> do
filecontents <- liftE $ rf av filecontents <- liftE $ rf av
let decompressed = Lzma.decompress filecontents let decompressed = Lzma.decompressWith (Lzma.defaultDecompressParams { Lzma.decompressAutoDecoder= True }) filecontents
liftE $ entries decompressed liftE $ entries decompressed
| ".tar.bz2" `isSuffixOf` fn -> | ".tar.bz2" `isSuffixOf` fn ->
liftE (entries . BZip.decompress =<< rf av) liftE (entries . BZip.decompress =<< rf av)

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
;; ;;