Commit Graph

427 Commits

Author SHA1 Message Date
Julian Ospald f7811961b5
Merge branch 'isolateDir' 2022-05-11 20:35:38 +02:00
Julian Ospald 991e540c11
Refactor code around isolateDirs, so we have proper knowledge 2022-05-11 16:18:35 +02:00
Julian Ospald b036c9861f
Re-enable upgrade functionality for all configurations
Adds a --fail-if-shadowed switch.
2022-05-04 14:15:17 +02:00
Julian Ospald f8a1fed1f2
Fix parsing of symlinks with multiple slashes,
Fixes #353
2022-04-29 19:22:16 +08:00
Julian Ospald 2d88b1197e
Fix EXDEV handler on windows wrt #345 2022-04-15 23:01:33 +02:00
Julian Ospald cfe6c47cd7
Fix max path issues on windows with 'ghcup run' 2022-03-18 17:47:49 +01:00
Julian Ospald 8eeb32c495
Overhaul metadata merging and add 'ghcup config add-release-channel URI' 2022-03-18 17:47:49 +01:00
Julian Ospald f9a38e616d
Add --raw-format to 'tool-requirements' subcommand 2022-03-17 15:05:18 +01:00
Julian Ospald 510675622b
Prepare 0.1.17.5 release 2022-02-26 15:33:44 +01:00
Julian Ospald 9faf17634b
Fix hlint and windows build 2022-02-10 21:49:19 +01:00
Julian Ospald c72841ca58
Implement 'ghcup run' 2022-02-09 18:57:59 +01:00
Julian Ospald 63350dab71
Fix recyclePathForcibly on windows 2022-02-06 22:56:22 +01:00
Julian Ospald d110d20879
Fix HLS removal on windows 2022-02-06 22:25:23 +01:00
Julian Ospald 6073ebe476
Fix HLS support and compile errors with boot and TH files 2022-02-06 00:32:18 +01:00
Julian Ospald 684953464b
Silence hlint 2022-02-05 19:39:00 +01:00
Julian Ospald 6831337289
Refactoring and fixes 2022-02-05 19:11:56 +01:00
Julian Ospald e40777a5d3
Resolve paths when using XDG dirs, fixes #311 2022-02-05 16:48:20 +01:00
Julian Ospald 51690d1df3
Support HLS dynamic builds 2022-02-05 16:33:05 +01:00
Julian Ospald b16e561384
Allow unpacking legacy lzma archives, fixes #307 2022-01-28 22:48:23 +01:00
Julian Ospald 67b7b2f292
Don't print to stdout during logging 2022-01-19 15:40:58 +01:00
Julian Ospald 3a7ed5ee2d
Fix hlint warnings 2022-01-12 22:55:00 +01:00
James Hobson 3fd9fae66a
Changed to use IO Exceptions 2022-01-12 13:31:10 +01:00
James Hobson f8548fefb3
Added support for quilt series files when patching 2022-01-12 10:01:48 +01:00
Julian Ospald 3f0befe30d
Fix `ghcup whereis ghc` for non-standard versions, fixes #289 2021-11-22 22:53:59 +01:00
Julian Ospald 76c286f95e
Use upstream terminal-size 2021-11-22 22:51:58 +01:00
Julian Ospald a9630d0802
Cooler patching 2021-11-12 19:52:00 +01:00
Julian Ospald 3a5f8d6139
Fix build on windows 2021-11-12 15:01:24 +01:00
Julian Ospald 626a2dd020
More debug logging 2021-11-12 01:01:21 +01:00
Julian Ospald c05876cc60
Fix build with ghc-8.6.5 2021-11-02 19:53:22 +01:00
Julian Ospald b9c4c9a0b7
Fix hlint 2021-11-02 10:57:27 +01:00
Julian Ospald 2c57def8f1
Fix parsing of atypical ghc versions 2021-11-02 01:22:06 +01:00
Julian Ospald 190b5dedba
Allow to control the metadata cache, fixes #278 2021-10-30 14:16:45 +02:00
Julian Ospald c10821c332
Use github.com/haskell/ghcup-metadata 2021-10-25 21:47:42 +02:00
Julian Ospald 4574f3aa4f
Switch to yaml-streamly 2021-10-21 23:39:07 +02:00
Julian Ospald 9f8c9c228d
Reduce IS_WINDOWS CPP 2021-10-17 20:57:22 +02:00
Julian Ospald ccfaedb7ad
Migrate to aeson-2.0.1.0 2021-10-13 19:47:14 +02:00
Julian Ospald c846e52acb
Cleanup during unpack failures as well 2021-10-10 20:48:33 +02:00
Julian Ospald c4ab59f7bf
Make sure to always ass GHC env var, fixes #258 2021-10-03 11:38:53 +02:00
Julian Ospald c19dd5ee8b
Implement `ghcup gc` command
Fixes #241
2021-09-25 22:29:02 +02:00
Julian Ospald 6ae3bfe395
Merge branch 'fix-hls-build' 2021-09-25 19:21:19 +02:00
Julian Ospald 8e8198546f
Fix HLS rebuilds 2021-09-25 18:25:03 +02:00
Julian Ospald 9497e310ca
Improve cli interface with partial versions
Fixes #243
2021-09-25 17:13:11 +02:00
Julian Ospald 15dd810d67
Get rid of concurrent-output
Also improve some NO_COLOR foo.
2021-09-24 23:49:50 +02:00
Julian Ospald aece305003
Move logger stuff to logger module 2021-09-23 12:53:01 +02:00
Julian Ospald ef8da9bcec
Make sure NO_COLOR also applies to logging 2021-09-23 12:16:49 +02:00
Julian Ospald 31a523755f
Remove solus support 2021-09-20 19:42:06 +02:00
Julian Ospald f90741f4d3
Implement compiling HLS from source 2021-09-19 22:04:32 +02:00
Julian Ospald 4767f3db5b
Implement ghcup unset 2021-09-19 14:17:55 +02:00
Julian Ospald c431c0ae00
Implement GPG verification wrt #236 2021-09-18 21:51:19 +02:00
Julian Ospald d3a36c2c9a
Merge remote-tracking branch 'origin/merge-requests/156' 2021-09-18 15:19:06 +02:00
Emily Pillmore e8d962ac44 Add language fixes per issue #237 2021-09-17 14:11:00 -06:00
Julian Ospald ae2031174e
Improve warnAboutHlsCompatibility 2021-09-14 12:36:14 +02:00
Arjun Kathuria 7a6a119829 Patch for MonadLogger deletion since new rebase 2021-09-07 14:21:24 +05:30
Julian Ospald 787c927de6
Improve logging, fixes #228 2021-09-06 23:01:49 +02:00
Julian Ospald db8207f8b9
Fixup 2021-09-04 16:06:33 +02:00
Julian Ospald d2346a543a
Fixup 2021-09-04 15:53:29 +02:00
Julian Ospald 9bdf6bde17
Only consider .diff/.patch for patch files wrt #226 2021-09-04 14:25:24 +02:00
Julian Ospald bc80b1048f
Fix debug logs 2021-09-03 21:00:39 +02:00
Julian Ospald d61981bc1b
Update doc on ghcupURL 2021-09-02 21:27:31 +02:00
Julian Ospald d98e54a743
Drop yaml/libyaml 2021-08-30 23:36:11 +02:00
Julian Ospald 13143b8e4d
Drop monad-logger 2021-08-30 23:36:11 +02:00
Julian Ospald a269b60282
Remove extra 2021-08-29 22:37:16 +02:00
Julian Ospald 430dc2d20b
Remove zip dependency 2021-08-29 20:56:17 +02:00
Jan Hrček f6b6b36eb7 Apply hlint 3.3.2 suggestions 2021-08-29 17:08:06 +02:00
Jan Hrček 3986677b06 Fix typos and simplify code 2021-08-29 14:50:49 +02:00
Julian Ospald b086261c3c
Merge remote-tracking branch 'origin/merge-requests/149' 2021-08-26 20:12:19 +02:00
Julian Ospald 8c098d4e17
Add solus in getLinuxDistro 2021-08-26 20:09:48 +02:00
Julian Ospald 14fc6b7281
Remove string-interpolate wrt #212 2021-08-25 18:54:58 +02:00
Julian Ospald 9d6e469f79
Add solus support 2021-08-25 13:51:34 +02:00
Julian Ospald f8cfcd4038
Get rid of tar 2021-08-25 11:48:30 +02:00
Julian Ospald bfc50e269c
Show a warning if xattr can't be executed 2021-08-24 15:34:35 +02:00
Julian Ospald 8247c0b00b
Add more doctests 2021-08-24 10:51:39 +02:00
Julian Ospald 951e676bee
Fix header reading wrt #213 2021-08-23 23:16:32 +02:00
Julian Ospald 281f310394
Add some unit tests 2021-08-23 23:16:14 +02:00
Arjun Kathuria 8c486e8d46 Make GHCup isolate installs non-overwriting by default 2021-08-23 20:18:45 +05:30
Julian Ospald 57c791106b
Fixup rest of the PR 2021-08-11 16:19:31 +02:00
Julian Ospald fcba151fad
Merge remote-tracking branch 'origin/merge-requests/134' 2021-08-11 14:20:04 +02:00
Julian Ospald 3b24f503d1
Fixup rest of the PR 2021-08-11 13:54:02 +02:00
Julian Ospald bd18fd9aa1
Merge remote-tracking branch 'origin/merge-requests/127' 2021-08-11 12:28:48 +02:00
Arjun Kathuria ce6fb0bb1e Adds new Error type `FileAlreadyExistsError` 2021-08-11 10:28:30 +05:30
Arjun Kathuria 80fa7965a4 Adds new Error type `IsolatedDirNotEmpty` 2021-08-10 20:11:32 +05:30
Julian Ospald 0a0fbd0cb6
Merge branch 'fix-metadata-download' 2021-08-07 19:26:26 +02:00
Julian Ospald 6dfc04a9f6
Fix metadata file read in --offline mode 2021-08-07 18:31:41 +02:00
Julian Ospald 72133d0002
Rather skip copying to cache dir if scheme is file:// 2021-08-07 10:24:08 +02:00
Julian Ospald 6e07e9e56b
Skip copying metadata if source and destination match 2021-08-07 09:55:45 +02:00
Julian Ospald e903aeb555
Skip cached metadata when url starts with file:// 2021-08-07 09:54:26 +02:00
Julian Ospald 2792f6f4b6
Fix error handling when we can't find a filename 2021-08-06 19:45:59 +02:00
vglfr 1cfff674b7
Implement config CLI MVP 2021-08-03 09:09:47 +03:00
Julian Ospald 442ddfd4e4
Bump ghcup metadata, because new GHC versions may have different bin/ layout 2021-07-28 20:08:20 +02:00
Julian Ospald d3e3ebd63f
Merge branch 'fix-ghcToolFiles' 2021-07-26 21:25:00 +02:00
Julian Ospald fdf45e0fe6
Do etags hashing wrt #193 2021-07-25 23:15:59 +02:00
Julian Ospald 3bdc82c99b
Redo file handling wrt #165 and #187 2021-07-22 17:44:03 +02:00
Julian Ospald 1c2cf98850
Fix file/dir removal on windows, fixes #165 2021-07-21 20:50:58 +02:00
Julian Ospald a4a7f73fb7
Allow to use Hadrian as build system, fixes #35 2021-07-20 23:51:31 +02:00
Julian Ospald 4ed72fb517
Preserve mtimes on unpacked GHC tarballs on windows wrt #187 2021-07-19 23:33:01 +02:00
Julian Ospald 3caf91c640
Fix ensureGlobalTools 2021-07-19 19:08:43 +02:00
Julian Ospald eaad2caf25
Add prefetch command 2021-07-19 16:51:40 +02:00
Julian Ospald 6143cdf2e0
Add --offline switch wrt #186 2021-07-19 13:49:24 +02:00
Julian Ospald 2c7176d998
Use LabelOptic and add LeanAppState
Wrt #186
2021-07-18 14:39:49 +02:00
Julian Ospald 42134fd2a5
Fix whereIsTool for cross 2021-07-15 22:38:42 +02:00
Julian Ospald f04708e8ae
Speed up 'whereis' subcommand wrt #179 2021-07-15 20:01:00 +02:00
Julian Ospald 5cf297a4d2
Clarify stack postinstall message wrt #153 2021-07-11 15:09:16 +02:00
Julian Ospald d86f84eef4
Improve logging with newlines 2021-07-11 14:34:05 +02:00
Julian Ospald 928f4a97de
Fix ghcToolFiles for upcoming GHC build system changes
Also see: https://gitlab.haskell.org/ghc/ghc/-/issues/20074#note_363720
2021-07-10 21:43:37 +02:00
Julian Ospald 8e820c6e89
Clean up and fix nuke command 2021-07-03 11:15:37 +02:00
Arjun Kathuria 6379a26afb factor out `getDirectoryContentsRecursive` function in GHCup.Utils.Prelude 2021-06-26 21:53:14 +05:30
Arjun Kathuria 9515065407 adds conditional export of useXDG in non-windows OS-es. fix in rmGhcupDirs code that used useXDG 2021-06-24 22:48:38 +05:30
Arjun Kathuria 2e3dceecf8 abstracts out getting ghcup conf file path 2021-06-23 10:08:06 +05:30
Julian Ospald b56c44a210
Ensure directories 2021-06-13 13:41:06 +02:00
Julian Ospald 54e8e3efb0
Gracefully handle stack binary not installed by ghcup 2021-06-12 22:27:31 +02:00
Julian Ospald 4dcc63606e
Remove legacy handling of cabal binary 2021-06-12 22:26:50 +02:00
Julian Ospald ac21c19b7e
Remove unnecessary micro version stripping
Since we can specify version bounds now, this is unnecessary.
2021-06-11 11:26:44 +02:00
Julian Ospald 27510b3b51
Allow setting GHCUP_INSTALL_BASE_PREFIX on windows 2021-06-08 18:08:06 +02:00
Julian Ospald aa992c0e5d
PrettyShow 2021-06-07 20:09:18 +02:00
Julian Ospald 443522d526
Improve windows bootstrapping and make msys2 configurable 2021-06-07 19:33:12 +02:00
Julian Ospald 2f62067d96
Windows support 2021-06-05 21:01:01 +02:00
Julian Ospald 734916728c
Add stack support 2021-05-15 14:01:00 +02:00
Julian Ospald 5a86a28d67
Smarter logging 2021-04-29 14:47:30 +02:00
Julian Ospald a905c6322c
Fix spelling 2021-04-29 14:47:22 +02:00
Julian Ospald 9f0ac0ee19
Allow to compile from git repo 2021-04-28 21:17:57 +02:00
Julian Ospald 1e9ee260e7
Raise minSpace to 5GB 2021-04-25 21:32:58 +02:00
Julian Ospald 0b7d447aaf
Satisfy hlint 2021-04-25 18:00:32 +02:00
Julian Ospald 16a9336d31
Fix missing pretty instance 2021-04-25 17:59:15 +02:00
Julian Ospald 7d13836fea
Warn when /tmp doesn't have 2500 or more of disk space 2021-04-25 17:25:40 +02:00
Julian Ospald 0c6699c3c6
Allow to check ghcup binaries in validate-tarballs 2021-04-11 22:15:43 +02:00
Julian Ospald adf44ba141
Validate subdirs too, fixes #52 2021-04-02 16:54:27 +02:00
Julian Ospald 7383fdd0c0
Make parser more lax, fixes #119
Also make sure we don't print the warning message
20 times, so avoid some repeated IO.
2021-04-01 17:21:00 +02:00
Julian Ospald d5b5f1fddd
Chores 2021-03-24 17:56:57 +01:00
Julian Ospald f6cc467e95
Fix handling of stray versions wrt #116 2021-03-07 12:02:13 +01:00
Julian Ospald 8c87c9aeb7
Fix error messages and overhaul pretty printing
Fixes #115
2021-03-02 10:35:31 +01:00
Julian Ospald f46e7e8c4b
Add "ghcup set ghc next" tag wrt #114 2021-02-25 19:10:55 +01:00
Julian Ospald 3baf254251
Improve tag completer 2021-02-25 16:13:00 +01:00
Julian Ospald 47d9766c78
Make sure forFold can properly inline 2021-02-25 15:40:52 +01:00
Julian Ospald 45ab69960f
Merge remote-tracking branch 'origin/merge-requests/70' 2021-02-25 15:36:37 +01:00
Julian Ospald d3505d4ee6
Bump version to 0.1.13 2021-02-25 15:33:52 +01:00
Huw campbell 453a29fdf7 Respect the user's configuration settings
Only lookup user configuration before doing a search; implement version completion for Cabal and HLS removal
2021-02-25 16:31:40 +11:00
Huw campbell 1a5f0259f4 Just use the cache for commands which refer to locally stored objects.
Setting a version of GHC will fail if provided with a version not installed,
and we don't neede to check the most recent list of GHCs available to know
that.
2021-02-25 10:19:16 +11:00
Huw campbell d6fa61e223 Add command line completions for installed and available versions.
When running `ghcup set ghc` and pressing tab, one should be able to
autocomplete the currently installed GHCs we have available.

Add an optparse applicative completer for install, rm, and set commands
which shows tags and versions. For installation, all are shown; while
for remove and set, only those installed are.
2021-02-25 00:42:16 +11:00
Julian Ospald a9b0c0fbc9
Allow for dynamic post-install, post-remove and pre-compile msgs 2021-02-23 11:52:38 +01:00
Julian Ospald 20338f7d14
Alert user if upgraded ghcup is shadowed by old ghcup
Also alerts if the binary is not in PATH at all.

Fixes #111
2021-02-21 19:58:32 +01:00
amesgen 53db68e39f
minor tarball filter format change 2021-01-02 07:58:08 +01:00
amesgen 8944ed6e36
allow to filter tarball validation by a URL substring
also, use nubOrd for linearithmic instead of quadratic complexity
2021-01-01 05:45:58 +01:00
Julian Ospald b0f90c096f
Fix chmod on executables, wrt #97 2020-12-20 01:27:27 +08:00
Julian Ospald 82aa6c70ea
Allow to encode version ranges for distro versions
Fixes #84
2020-11-21 01:12:15 +01:00
Julian Ospald 66f989e691
Fix FromJSONKey instances
This led to silent Nothing when the parser failed.
2020-11-20 23:18:25 +01:00
Julian Ospald 1d3e88bdfe
Fix disappearing HLS symlinks wrt #91
When installing a new GHC version, the corresponding
HLS symlink of that version may be accidentially removed.

Ooops.
2020-11-20 23:05:37 +01:00
Julian Ospald 53f5a08924
Allow configuring URLSource as well 2020-10-25 14:47:26 +01:00
Julian Ospald 4fef93b7b1
Allow to configure ghcup with a yaml config file
Fixes #41
2020-10-25 10:22:45 +01:00
Julian Ospald 241dadbeb5
Update to versions-4.0.1 API 2020-10-25 10:22:35 +01:00
Julian Ospald e250d6013f
Redo Settings as AppState 2020-10-24 01:07:31 +02:00
Julian Ospald 956e11c3f8
Bump version to 0.1.12 2020-10-13 00:09:35 +02:00
Julian Ospald 57c34a07f2
Allow to hide old versions of tools in TUI 2020-10-09 23:05:11 +02:00
Julian Ospald 9d7914e69a
Bump ghcupURL 2020-09-22 23:41:19 +02:00
Julian Ospald cbbb75062c
Bump version to 0.1.11 2020-09-20 23:09:09 +02:00
Julian Ospald bb7c4205db
Allow to install haskell-language-server wrt #65 2020-09-20 23:09:09 +02:00
Julian Ospald a269131e2d
Allow to compile over existing version, fixes #59 2020-09-17 21:21:16 +02:00
Julian Ospald 9d6a5313ab
Add JSON roundtrip specs 2020-09-13 21:10:13 +02:00
Julian Ospald de09c950d5
Improve requirements wording, fixes #56 2020-09-13 15:38:51 +02:00
Julian Ospald 02b360e2a9
Create bindists when compiling GHC wrt #51 2020-09-12 23:47:12 +02:00
Julian Ospald 326bf510c9
Fix Error when ~/.ghcup is a valid symlink
Fixes #49
2020-08-31 13:03:12 +02:00
Julian Ospald 873c951d6e
Refactor chmod +x 2020-08-14 22:27:05 +02:00
Julian Ospald 672ebf6426
Bump version 2020-08-14 16:57:15 +02:00
Julian Ospald 90af68b211
Pre-release 0.1.9 2020-08-11 21:55:15 +02:00
Julian Ospald dac64f5718
Make TarDir backwardscompat 2020-08-10 22:28:02 +02:00
Julian Ospald 5c45884f5f
Allow to specify regex for subdir 2020-08-10 22:27:50 +02:00
Julian Ospald cafedd73a2
Use Settings to avoid querying dirs every time 2020-08-10 21:52:30 +02:00
Julian Ospald 7163b77837
Only query directories once 2020-08-10 21:51:31 +02:00
Julian Ospald 122c54b51e
Refactor 2020-08-10 21:51:31 +02:00
Julian Ospald b9d7d7d007
Fix licences in module haddock 2020-08-10 21:51:29 +02:00
Julian Ospald aac8f760ad
Add xdg support wrt #39 2020-08-10 21:51:19 +02:00
Julian Ospald 86b0e4b31b
Fix `cabalSet` for pre-release versions 2020-08-10 21:51:19 +02:00
Julian Ospald af811f3dbc
`nub` result in getInstalledCabals 2020-08-10 21:51:19 +02:00
Julian Ospald d30d2ac8a5
Add cabal-install-3.4.0.0-rc1 2020-08-10 21:51:00 +02:00
Julian Ospald 391676e90a
Use yaml instead of pesky json 2020-08-09 21:56:11 +02:00
Julian Ospald 846cf92fa4
Add GHC-8.10.2 2020-08-09 15:49:08 +02:00
Julian Ospald 826900cc41
Improve documentation 2020-07-22 01:08:58 +02:00
Julian Ospald ec6bbdbf06
Update ghcup binaries 2020-07-22 00:18:31 +02:00
Julian Ospald 4b21adadf1
Release 0.1.8 2020-07-21 22:47:21 +02:00
Julian Ospald 78ae77780b
Fix bug in logging thread
It would die on newlines due to empty String blindness.
Also make sure takeMVar does not block.
2020-07-21 22:43:09 +02:00
Julian Ospald 21ac670bbe
Update FreeBSD bindist 2020-07-21 21:08:41 +02:00
Julian Ospald e1cf11f9d4
Add Alpine GHC 8.4.4 for 64bit 2020-07-21 01:18:03 +02:00
Julian Ospald 97cd43792d
Set 8.8.4 as recommended GHC version 2020-07-21 00:31:02 +02:00
Julian Ospald 08693e6d3a
Add more alpine bindists 2020-07-21 00:29:46 +02:00
Julian Ospald e2227da8d2
Update ghcup binaries 2020-07-21 00:02:14 +02:00
Julian Ospald 53148fd1c9
Release 0.1.7 2020-07-20 22:25:28 +02:00
Julian Ospald b7faae1203
Add more alpine bindists 2020-07-20 22:20:24 +02:00
Julian Ospald b6a9d35c3e
Merge branch 'alpine-bindists' 2020-07-20 20:59:08 +02:00
Julian Ospald 22a5ad739e
Don't try non-musl bindists for Alpine Linux 2020-07-20 20:47:45 +02:00
Julian Ospald 9e59f484e3
Fix alpine bindists 2020-07-20 20:30:47 +02:00
Julian Ospald 3ecdb63063
Update tarballs 2020-07-19 00:50:57 +02:00
Julian Ospald 4c4266dd8c
Add GHC-8.8.4 for FreeBSD 2020-07-16 14:38:19 +02:00
Julian Ospald e8336bbc8a
Add GHC-8.8.4 2020-07-16 10:57:44 +02:00
Julian Ospald 0f69c73e0e
Rework printing/tee
This should be faster to draw, use less syscalls
and generally use EOF and pipes correctly.
2020-07-16 00:10:27 +02:00
Julian Ospald 3c2e0334b7
Update ghcup binary urls 2020-07-14 19:07:19 +02:00
Julian Ospald 0679626514
Self host ghcup binaries 2020-07-14 14:29:23 +02:00
Julian Ospald 5035051135
Update 0.1.6 2020-07-13 23:50:11 +02:00
Julian Ospald ba03b78f23
Update ghcup binaries 2020-07-13 22:15:39 +02:00
Julian Ospald fb0eba9201
Release 0.1.6 2020-07-13 20:31:14 +02:00
Julian Ospald b184ee835f
Add freebsd 8.6.5 bindist 2020-07-13 20:05:02 +02:00
Julian Ospald 1a64527e14
Improve verbosity 2020-07-13 16:27:01 +02:00