Commit Graph

571 Commits

Author SHA1 Message Date
Arjun Kathuria
8934e0e6bd Merge branch 'feat-nuke' of gitlab.haskell.org:arjun/ghcup-hs into feat-nuke 2021-06-26 20:00:37 +05:30
Arjun Kathuria
59519febbc handle symlink case when deleting directories in rmGhcupDirs 2021-06-26 19:52:32 +05:30
Arjun Kathuria
46fcdd356c Use rmFile instead of removeFile. 2021-06-26 19:32:53 +05:30
Arjun Kathuria
931904f388 fix minor typo in conditional windows code 2021-06-25 17:00:39 +05:30
Arjun Kathuria
a40d0cbb5c swap out system.Directory.rename for Win32.File.moveFileEx for windows 2021-06-25 16:09:26 +05:30
Arjun Kathuria
9f5df9db10 Adds conditional windows ghcup bin removal code. Todo: test it, add
more exception handling if required.
2021-06-25 15:06:02 +05:30
Arjun Kathuria
d26ddf7015 adds rudimentary ghcup bin removal code. TODO: handle windows. 2021-06-25 13:54:38 +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
82a8c61cf6 adds bin dir removal code, checking for XDG 2021-06-24 10:54:38 +05:30
Arjun Kathuria
3fae516ce4 Adds using 'rmFile' fn in rmGhcupDirs, it has better windows handling logic 2021-06-24 10:08:21 +05:30
Arjun Kathuria
33eaa765d7 adds better error handling when removing files and dirs in rmGhcupDirs function 2021-06-23 23:23:54 +05:30
Arjun Kathuria
3b3dde8413 updates deleting dirs in rmGhcupDirs according to feedback on merge request 2021-06-23 10:36:17 +05:30
Arjun Kathuria
118a2744fe adds new getGhcupConfFilePath fn to GHCup.hs, also refactors to use for error handling in missing file cases 2021-06-23 10:10:28 +05:30
Arjun Kathuria
2e3dceecf8 abstracts out getting ghcup conf file path 2021-06-23 10:08:06 +05:30
Arjun Kathuria
8a1dbe9dbb basic implementation of rmGhcupDirs function that removes relevant dirs in NUKE command 2021-06-22 23:14:25 +05:30
Arjun Kathuria
4ef3622616 Adds argument de-structuring to 'rmTool' function & remove the one in its body 2021-06-22 20:09:35 +05:30
Arjun Kathuria
0b959c56fb change rmTool type to Excepts '[NotInstalled ] m () 2021-06-22 18:44:30 +05:30
Arjun Kathuria
ec29332657 Adds basic implementation of rmTool function 2021-06-22 14:29:26 +05:30
41783ff027
Fix ghcup upgrade if binary is in non-standard location 2021-06-13 15:08:31 +02:00
b56c44a210
Ensure directories 2021-06-13 13:41:06 +02:00
ef0c94fddd
Fix windows upgrade for good 2021-06-13 10:15:34 +02:00
b40cefee35
Fix 'ghcup upgrade' on windows 2021-06-13 07:51:54 +02:00
581108ab65
Fix compliation from git 2021-06-12 22:27:56 +02:00
54e8e3efb0
Gracefully handle stack binary not installed by ghcup 2021-06-12 22:27:31 +02:00
4dcc63606e
Remove legacy handling of cabal binary 2021-06-12 22:26:50 +02:00
ac21c19b7e
Remove unnecessary micro version stripping
Since we can specify version bounds now, this is unnecessary.
2021-06-11 11:26:44 +02:00
27510b3b51
Allow setting GHCUP_INSTALL_BASE_PREFIX on windows 2021-06-08 18:08:06 +02:00
aa992c0e5d
PrettyShow 2021-06-07 20:09:18 +02:00
443522d526
Improve windows bootstrapping and make msys2 configurable 2021-06-07 19:33:12 +02:00
9f92e0bc86
Fix #136 2021-06-05 22:26:35 +02:00
2f62067d96
Windows support 2021-06-05 21:01:01 +02:00
734916728c
Add stack support 2021-05-15 14:01:00 +02:00
5a86a28d67
Smarter logging 2021-04-29 14:47:30 +02:00
a905c6322c
Fix spelling 2021-04-29 14:47:22 +02:00
49ccadd470
Warn when overwriting current GHC due to compile 2021-04-29 14:46:45 +02:00
9f0ac0ee19
Allow to compile from git repo 2021-04-28 21:17:57 +02:00
1e9ee260e7
Raise minSpace to 5GB 2021-04-25 21:32:58 +02:00
0b7d447aaf
Satisfy hlint 2021-04-25 18:00:32 +02:00
16a9336d31
Fix missing pretty instance 2021-04-25 17:59:15 +02:00
7d13836fea
Warn when /tmp doesn't have 2500 or more of disk space 2021-04-25 17:25:40 +02:00
b645c4d57e
Add date to GHC bindist names created by ghcup 2021-04-24 21:51:43 +02:00
0c6699c3c6
Allow to check ghcup binaries in validate-tarballs 2021-04-11 22:15:43 +02:00
adf44ba141
Validate subdirs too, fixes #52 2021-04-02 16:54:27 +02:00
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
d5b5f1fddd
Chores 2021-03-24 17:56:57 +01:00
f6cc467e95
Fix handling of stray versions wrt #116 2021-03-07 12:02:13 +01:00
8c87c9aeb7
Fix error messages and overhaul pretty printing
Fixes #115
2021-03-02 10:35:31 +01:00
f46e7e8c4b
Add "ghcup set ghc next" tag wrt #114 2021-02-25 19:10:55 +01:00
3baf254251
Improve tag completer 2021-02-25 16:13:00 +01:00
47d9766c78
Make sure forFold can properly inline 2021-02-25 15:40:52 +01:00
45ab69960f
Merge remote-tracking branch 'origin/merge-requests/70' 2021-02-25 15:36:37 +01:00
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
a9b0c0fbc9
Allow for dynamic post-install, post-remove and pre-compile msgs 2021-02-23 11:52:38 +01:00
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
d82e189c01
Fix failed ghcup upgrade if destination dir doesn't exist
Fixes #109
2021-02-16 14:37:17 +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
b0f90c096f
Fix chmod on executables, wrt #97 2020-12-20 01:27:27 +08:00
82aa6c70ea
Allow to encode version ranges for distro versions
Fixes #84
2020-11-21 01:12:15 +01:00
66f989e691
Fix FromJSONKey instances
This led to silent Nothing when the parser failed.
2020-11-20 23:18:25 +01:00
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
08ddb591b7
Add toolchain sanity checks wrt #82 2020-10-30 21:07:49 +01:00
53f5a08924
Allow configuring URLSource as well 2020-10-25 14:47:26 +01:00
4fef93b7b1
Allow to configure ghcup with a yaml config file
Fixes #41
2020-10-25 10:22:45 +01:00
241dadbeb5
Update to versions-4.0.1 API 2020-10-25 10:22:35 +01:00
e250d6013f
Redo Settings as AppState 2020-10-24 01:07:31 +02:00
956e11c3f8
Bump version to 0.1.12 2020-10-13 00:09:35 +02:00
57c34a07f2
Allow to hide old versions of tools in TUI 2020-10-09 23:05:11 +02:00
9d7914e69a
Bump ghcupURL 2020-09-22 23:41:19 +02:00
965d2a3ba8
Drop 'ghcup compile cabal'
Upstream has discontinued the old bootstrap shell script.
The new python shell script doesn't work like the old one
and is only useful for bootstrapping to a new architecture.

If you miss this feature, consider running:
  cabal install cabal-install

with the appropriate GHC version set (this might need some
experimenting).

This also fixes #64
2020-09-22 21:26:10 +02:00
cbbb75062c
Bump version to 0.1.11 2020-09-20 23:09:09 +02:00
bb7c4205db
Allow to install haskell-language-server wrt #65 2020-09-20 23:09:09 +02:00
a269131e2d
Allow to compile over existing version, fixes #59 2020-09-17 21:21:16 +02:00
59ece98fdc
Fix bug in compileGHC cleanup logic 2020-09-17 21:20:38 +02:00
9d6a5313ab
Add JSON roundtrip specs 2020-09-13 21:10:13 +02:00
de09c950d5
Improve requirements wording, fixes #56 2020-09-13 15:38:51 +02:00
02b360e2a9
Create bindists when compiling GHC wrt #51 2020-09-12 23:47:12 +02:00
326bf510c9
Fix Error when ~/.ghcup is a valid symlink
Fixes #49
2020-08-31 13:03:12 +02:00
873c951d6e
Refactor chmod +x 2020-08-14 22:27:05 +02:00
d9c864d3c5
Make sure cabal is executable wrt #46 2020-08-14 22:07:39 +02:00
672ebf6426
Bump version 2020-08-14 16:57:15 +02:00
e24c9a3ffe
Show stray cabals, fixes #45 2020-08-14 16:53:32 +02:00
202f3ea3ba
Fix bug where setting non-installed GHC unsets current one 2020-08-13 20:40:09 +02:00
90af68b211
Pre-release 0.1.9 2020-08-11 21:55:15 +02:00
dac64f5718
Make TarDir backwardscompat 2020-08-10 22:28:02 +02:00
5c45884f5f
Allow to specify regex for subdir 2020-08-10 22:27:50 +02:00
cafedd73a2
Use Settings to avoid querying dirs every time 2020-08-10 21:52:30 +02:00
7163b77837
Only query directories once 2020-08-10 21:51:31 +02:00
122c54b51e
Refactor 2020-08-10 21:51:31 +02:00
b9d7d7d007
Fix licences in module haddock 2020-08-10 21:51:29 +02:00
aac8f760ad
Add xdg support wrt #39 2020-08-10 21:51:19 +02:00
86b0e4b31b
Fix cabalSet for pre-release versions 2020-08-10 21:51:19 +02:00
af811f3dbc
nub result in getInstalledCabals 2020-08-10 21:51:19 +02:00
d30d2ac8a5
Add cabal-install-3.4.0.0-rc1 2020-08-10 21:51:00 +02:00
391676e90a
Use yaml instead of pesky json 2020-08-09 21:56:11 +02:00
846cf92fa4
Add GHC-8.10.2 2020-08-09 15:49:08 +02:00
fb1875ee5b
Doc fixes 2020-07-22 02:34:17 +02:00
826900cc41
Improve documentation 2020-07-22 01:08:58 +02:00
ec6bbdbf06
Update ghcup binaries 2020-07-22 00:18:31 +02:00
b5440fc7d2
Fix bug in installCabalBin 2020-07-21 23:10:47 +02:00
4b21adadf1
Release 0.1.8 2020-07-21 22:47:21 +02:00
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
ccb95bcbee
f custom 2020-07-21 22:42:39 +02:00
21ac670bbe
Update FreeBSD bindist 2020-07-21 21:08:41 +02:00
dad926f3ba
Allow to specify custom bindist, fixes #14 2020-07-21 20:19:33 +02:00
e1cf11f9d4
Add Alpine GHC 8.4.4 for 64bit 2020-07-21 01:18:03 +02:00
97cd43792d
Set 8.8.4 as recommended GHC version 2020-07-21 00:31:02 +02:00
08693e6d3a
Add more alpine bindists 2020-07-21 00:29:46 +02:00
e2227da8d2
Update ghcup binaries 2020-07-21 00:02:14 +02:00
53148fd1c9
Release 0.1.7 2020-07-20 22:25:28 +02:00
b7faae1203
Add more alpine bindists 2020-07-20 22:20:24 +02:00
b6a9d35c3e
Merge branch 'alpine-bindists' 2020-07-20 20:59:08 +02:00
6cb6c7a448
Install alpine bindists with --disable-ld-override 2020-07-20 20:48:22 +02:00
22a5ad739e
Don't try non-musl bindists for Alpine Linux 2020-07-20 20:47:45 +02:00
9e59f484e3
Fix alpine bindists 2020-07-20 20:30:47 +02:00
3ecdb63063
Update tarballs 2020-07-19 00:50:57 +02:00
4c4266dd8c
Add GHC-8.8.4 for FreeBSD 2020-07-16 14:38:19 +02:00
e8336bbc8a
Add GHC-8.8.4 2020-07-16 10:57:44 +02:00
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
3c2e0334b7
Update ghcup binary urls 2020-07-14 19:07:19 +02:00
0679626514
Self host ghcup binaries 2020-07-14 14:29:23 +02:00
5035051135
Update 0.1.6 2020-07-13 23:50:11 +02:00
ba03b78f23
Update ghcup binaries 2020-07-13 22:15:39 +02:00
fb0eba9201
Release 0.1.6 2020-07-13 20:31:14 +02:00
b184ee835f
Add freebsd 8.6.5 bindist 2020-07-13 20:05:02 +02:00
ef8e3bd940
Reduce number of os/dl lookups 2020-07-13 18:27:21 +02:00
1a64527e14
Improve verbosity 2020-07-13 16:27:01 +02:00
50424c2801
Allow to build with tar-bytestring on e.g. 32bit 2020-07-13 15:41:31 +02:00
531b82a406
Add ghc-8.8.3 freebsd bindist 2020-07-13 15:41:30 +02:00
146ac38549
Add 8.10.1 freebsd bindist 2020-07-12 16:48:25 +02:00
8ef19f0825
Allow to build with ghc-8.10.1 and 8.6.5 2020-07-11 22:53:38 +02:00
Ben Gamari
2be1aa2707
Simplify upgrade copying logic 2020-07-10 22:03:04 +02:00
da94fa5f92
Create brick tui wrt #24 2020-07-10 21:55:12 +02:00
bed2cca8d2
Use libarchive instead of tar-bytestring 2020-07-05 23:03:24 +02:00
9717a1c00f
Use os-release package 2020-07-04 23:28:30 +02:00
4b89810892
Rm unused functions 2020-07-04 21:20:08 +02:00
dd7556ba21
Merge branch 'less-bash' 2020-06-27 21:38:12 +02:00
f9251589cd
Add some architectures 2020-06-27 19:00:13 +02:00
2de549862a
Get rid of language-bash
And clean up detection logic a bit. We also don't
read /etc/lsb-release manually more, since it's format is
not specified.
2020-06-27 18:54:20 +02:00
86c144b285
Merge remote-tracking branch 'remotes/origin/merge-requests/12' into hadrian 2020-06-20 14:40:47 +02:00
7ec6e8604c
Slight style changes 2020-06-20 14:37:38 +02:00
de70f4820f
Merge remote-tracking branch 'origin/merge-requests/13' into hadrian 2020-06-20 12:39:21 +02:00
Brian McKenna
febe6fcb35 Fix behaviour of non-Hadrian builds
getFileStatus will resolve symbolic links. getSymbolicLinkStatus doesn't.
2020-06-20 03:38:41 +00:00
Brian McKenna
3055529d4c Update GHCupDownloads with ghcup-0.0.2.json content 2020-06-19 23:17:34 +00:00
Brian McKenna
d276bfb3ec Extract Hadrian logic to isHadrian function with comment 2020-06-19 23:06:46 +00:00
Sigmund Vestergaard
ad53b141c7
Removed reference to specific version of RHEL in GHCupDownloads.hs 2020-06-19 10:49:31 +02:00
Sigmund Vestergaard
23c13a07a9
Added support for RedHat in lib/GHCup/Data/GHCupDownloads.hs 2020-06-19 10:49:31 +02:00
Brian McKenna
a186b07763 Support Hadrian provided bindists
Fixes #31
2020-06-18 14:03:51 +00:00
be93a98bd4
Update ToolRequirements for Ubuntu, add Debian
Fixes #26
2020-05-17 18:43:58 +02:00
85054d9c76
Show note for versions that don't have a bindist 2020-05-15 21:53:45 +02:00
6c95218daf
Support multiple installed versions of cabal
Fixes #23
2020-05-13 21:33:45 +02:00
ede6299681
Update darwin binary 2020-05-10 13:47:06 +02:00
378942cbce
Update darwin ghcup-0.1.5 binary
Seems to be broken on some systems due to
gitlab CI using homebrew. Switched back
to building it on travis.

Fixes #21
2020-05-07 21:35:40 +02:00
d2b280da2d
Update tarballs 2020-04-30 20:46:45 +02:00
0bbac877bd
Update ghcup tarballs 2020-04-30 00:12:30 +02:00
a8be2efd85
Bump to version 0.1.5 2020-04-29 22:34:20 +02:00
f46700e1cc
First cross try 2020-04-29 20:19:01 +02:00
a1282b2854
Fix missing import 2020-04-29 19:36:16 +02:00
0ff7ebb1fd
Allow to set downloader 2020-04-29 19:12:58 +02:00
56e4a6b15f
Invert curl flag to internal-downloader 2020-04-29 09:56:26 +02:00
56c439d716
Fall back to cached ghcup-<..>.json 2020-04-27 23:23:34 +02:00
fad9f83e6a
Add CentoOS tool requirements 2020-04-27 21:52:44 +02:00
1d623723a2
Fix bug with missing ~/.ghcup/ghc/ dir 2020-04-26 22:06:00 +02:00
931080244f
Fix bug in logging 2020-04-26 20:17:59 +02:00
27e2e7f848
Fix building of documentation 2020-04-26 11:55:47 +02:00
8b638c7ecb
Rm stray ghc version 2020-04-25 13:22:12 +02:00
5edebd57d9
Move download info into library 2020-04-22 19:32:48 +02:00
bcaccaaf31
Implement --keep 2020-04-22 19:32:14 +02:00
13acce07d4
Allow to install X.Y versions 2020-04-22 16:13:58 +02:00
6c12eb16eb
Add base tag 2020-04-22 11:59:40 +02:00
e637f90fae
List stray tools 2020-04-21 23:37:48 +02:00
e3c20d53a8
Add changelog command
This should be backwardscompatible with 0.0.1 json format.

Also slightly change 'getTagged' to list the latest version
with a tag, not the oldest.
2020-04-18 15:06:22 +02:00
eaafd77a7e
Add --version and --numeric-version 2020-04-17 18:57:58 +02:00
9d9e415a09
Remove use of unsafe decodeUtf8 2020-04-17 09:30:45 +02:00
793aad7b6c
Fix ghc-make when files are in PATH
Fixes #11
2020-04-16 23:15:21 +02:00
879bd061dd
Bump to 0.1.4 2020-04-16 09:04:19 +02:00
75632b2cf1
Fix ghc being unlinked after installing a new one
Fixes #7
2020-04-16 08:39:36 +02:00
997dcadf89
Show the version when doing 'ghcup set' 2020-04-15 17:06:48 +02:00
3d10f964c6
Bump version to 0.1.3 2020-04-15 15:42:09 +02:00
404038edcb
Fix boolean check in upgradeGHCup :) 2020-04-15 15:37:29 +02:00
b3105b439c
Bump version to 0.1.2 2020-04-15 13:58:53 +02:00
f4242b10e7
Don't update ghcup if already latest version
Fixes #2
2020-04-15 13:58:52 +02:00
ad4d185ead
Fix GHCUP_INSTALL_BASE_PREFIX
This should be the *parent* dir of '.ghcup', not
the full destination.
2020-04-15 13:55:32 +02:00
b18aafe2c4
Fix bug with removing set GHC version 2020-04-15 13:55:28 +02:00
5635f6cc4e
Bump version 2020-04-15 00:25:34 +02:00
de66b92631
Fix upgradeGHCup 2020-04-12 20:22:16 +02:00
d2efb504b9
Fix upgradeGHCup
File needs to be unlinked first, because it might
potentially be in use.
2020-04-12 18:54:03 +02:00
b11b74d2b4
Only use major version for Darwin 2020-04-11 22:15:09 +02:00
b5648bdd6b
Improve error in compileGHC 2020-04-10 22:44:43 +02:00
e7cd952970
Fix missing version detection for darwin and freebsd 2020-04-10 21:11:15 +02:00
1455c2c175
Add darwin notarisation 2020-04-10 19:27:17 +02:00
c106dd3f65
Show curl progress bar 2020-04-10 19:08:02 +02:00
c706a047ea
Add tool-requirements subcommand 2020-04-10 18:45:33 +02:00
9602db31ab
Bump version to 0.1.0 2020-04-09 20:37:03 +02:00
3496f24f6e
Silence compiler warnings 2020-04-09 20:08:25 +02:00
c782bc44de
Avoid unnecessary OpenSSL deps 2020-04-09 18:27:07 +02:00
f78e7b1cbc
Small refactor and build fixes 2020-04-09 18:26:02 +02:00
adec7b2398
Allow to build with curl (cli) instead of http-io-streams
This allows to avoid linking against OpenSSL on mac.
2020-04-09 17:01:03 +02:00
958bf698b9
Fix bug in caputeOutStreams
We didn't read continuously from the pipe, potentially
blocking it when the buffer is full.
2020-04-09 17:01:03 +02:00
6a79782650
Allow to apply patches for compiling from source 2020-04-08 22:57:57 +02:00
5382fd9aca
Fix crashes due to utf8 decoding errors 2020-04-08 22:20:26 +02:00
8a0236a350
Allow to specify full path to bootstrap GHC 2020-04-08 22:17:39 +02:00
3e52def226
Update downloads and version 2020-04-05 11:02:13 +02:00
31a8316bfa Implement proper build log scrolling 2020-03-24 21:05:10 +01:00
0963081fd8 Use OverloadedStrings instead of TH 2020-03-21 22:19:37 +01:00
e58e1c1954 Force LD=ld.bfd for ghc compilation 2020-03-18 17:31:17 +01:00
c7a831a280 Improve error handling in download
When download fails, delete the partial file, so it
doesn't corrupt the cache.
2020-03-17 23:21:38 +01:00
c0c70f5c9b Abstract over make
So on FreeBSD we get gmake.
2020-03-17 22:43:45 +01:00
f8448cf02b Make sure directories exist 2020-03-17 19:16:21 +01:00
35b6359c1b Improve error handling 2020-03-17 18:40:25 +01:00
8a1bd45ffe Remove URLSource from Settings 2020-03-17 18:39:01 +01:00
2c99070d89 Set version to 0.0.0 2020-03-17 02:00:28 +01:00
93aac16fc5 Spelling 2020-03-17 02:00:28 +01:00
775c541895 Minor refactor 2020-03-16 10:49:34 +01:00
b0eba1a77a Use regex-posix instead of text-icu
This will make static linking easier.
2020-03-16 10:49:04 +01:00
951a7173ae Remove unnecessary type annotations 2020-03-16 10:47:09 +01:00
03ee8915fb Rename dl function 2020-03-09 20:49:10 +01:00
a93aaf9a5f Initial commit 2020-03-09 00:44:11 +01:00