Commit Graph

574 Commits

Author SHA1 Message Date
c9790e5823
Use strongly types GHCupPath and restrict destructive operations 2022-05-13 21:35:34 +02:00
db4e411dfd
Fix darwin binaries after copying 2022-05-13 17:58:15 +02:00
48aee1e76c
[WIP] Prototype of recording installed files
This also installs makefile based build system via DESTDIR
into a temporary directory and then merges it into the filesystem.
2022-05-13 00:46:47 +02:00
f7811961b5
Merge branch 'isolateDir' 2022-05-11 20:35:38 +02:00
5130cb013b
Fix HLS not cleaning up after failed install, fix #361 2022-05-11 16:18:35 +02:00
991e540c11
Refactor code around isolateDirs, so we have proper knowledge 2022-05-11 16:18:35 +02:00
b036c9861f
Re-enable upgrade functionality for all configurations
Adds a --fail-if-shadowed switch.
2022-05-04 14:15:17 +02:00
99c8501d47
Silence hlint 2022-04-29 16:47:11 +02:00
f8a1fed1f2
Fix parsing of symlinks with multiple slashes,
Fixes #353
2022-04-29 19:22:16 +08:00
2d88b1197e
Fix EXDEV handler on windows wrt #345 2022-04-15 23:01:33 +02:00
cfe6c47cd7
Fix max path issues on windows with 'ghcup run' 2022-03-18 17:47:49 +01:00
8eeb32c495
Overhaul metadata merging and add 'ghcup config add-release-channel URI' 2022-03-18 17:47:49 +01:00
f9a38e616d
Add --raw-format to 'tool-requirements' subcommand 2022-03-17 15:05:18 +01:00
8c205fd18c
Add --no-set to install commands, fixes #330
This also slightly changes the default for
'ghcup install cabal/stack/hls'... instead of
only setting the installed version if it's the latest,
we always set it. So the default is `--set`.

For GHC, the default is `--no-set`.
2022-03-13 22:48:45 +01:00
510675622b
Prepare 0.1.17.5 release 2022-02-26 15:33:44 +01:00
9faf17634b
Fix hlint and windows build 2022-02-10 21:49:19 +01:00
c72841ca58
Implement 'ghcup run' 2022-02-09 18:57:59 +01:00
63350dab71
Fix recyclePathForcibly on windows 2022-02-06 22:56:22 +01:00
d110d20879
Fix HLS removal on windows 2022-02-06 22:25:23 +01:00
b4e58478c3
Fix error handling for HLS make 2022-02-06 22:24:52 +01:00
6073ebe476
Fix HLS support and compile errors with boot and TH files 2022-02-06 00:32:18 +01:00
684953464b
Silence hlint 2022-02-05 19:39:00 +01:00
6b978b42bc
Improve rmHLSNoGHC 2022-02-05 19:12:13 +01:00
6831337289
Refactoring and fixes 2022-02-05 19:11:56 +01:00
e40777a5d3
Resolve paths when using XDG dirs, fixes #311 2022-02-05 16:48:20 +01:00
51690d1df3
Support HLS dynamic builds 2022-02-05 16:33:05 +01:00
b16e561384
Allow unpacking legacy lzma archives, fixes #307 2022-01-28 22:48:23 +01:00
67b7b2f292
Don't print to stdout during logging 2022-01-19 15:40:58 +01:00
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
3f0befe30d
Fix ghcup whereis ghc for non-standard versions, fixes #289 2021-11-22 22:53:59 +01:00
76c286f95e
Use upstream terminal-size 2021-11-22 22:51:58 +01:00
a9630d0802
Cooler patching 2021-11-12 19:52:00 +01:00
c5c6c431b5
Allow remote URIs for --cabal-project-local wrt #281 2021-11-12 19:05:13 +01:00
3a5f8d6139
Fix build on windows 2021-11-12 15:01:24 +01:00
274978a8a7
Allow to pass cabal args to 'compile hls'
This breaks the existing cli interface, but whatever.
2021-11-12 01:13:57 +01:00
8eea9bd6a5
Prefer forM_ when possible 2021-11-12 01:04:27 +01:00
626a2dd020
More debug logging 2021-11-12 01:01:21 +01:00
d038c361c0
Revert "Fix HLS rebuilds"
This reverts commit 8e8198546f.
2021-11-11 21:40:02 +01:00
c05876cc60
Fix build with ghc-8.6.5 2021-11-02 19:53:22 +01:00
b9c4c9a0b7
Fix hlint 2021-11-02 10:57:27 +01:00
2c57def8f1
Fix parsing of atypical ghc versions 2021-11-02 01:22:06 +01:00
190b5dedba
Allow to control the metadata cache, fixes #278 2021-10-30 14:16:45 +02:00
c10821c332
Use github.com/haskell/ghcup-metadata 2021-10-25 21:47:42 +02:00
4574f3aa4f
Switch to yaml-streamly 2021-10-21 23:39:07 +02:00
9f8c9c228d
Reduce IS_WINDOWS CPP 2021-10-17 20:57:22 +02:00
ccfaedb7ad
Migrate to aeson-2.0.1.0 2021-10-13 19:47:14 +02:00
c846e52acb
Cleanup during unpack failures as well 2021-10-10 20:48:33 +02:00
c4ab59f7bf
Make sure to always ass GHC env var, fixes #258 2021-10-03 11:38:53 +02:00
3b8f2e8307
Apply patches before bootstrap 2021-09-29 23:08:55 +02:00
0af7aaef3c
Fix `--overwrite-version for ghcup compile ghc
Fixes #253
2021-09-29 22:33:17 +02:00
d2b4eccac2
Honour GHC bootstrap compiler during git clone stages
Fixes #250
2021-09-27 12:51:59 +02:00
c19dd5ee8b
Implement ghcup gc command
Fixes #241
2021-09-25 22:29:02 +02:00
6ae3bfe395
Merge branch 'fix-hls-build' 2021-09-25 19:21:19 +02:00
8e8198546f
Fix HLS rebuilds 2021-09-25 18:25:03 +02:00
9497e310ca
Improve cli interface with partial versions
Fixes #243
2021-09-25 17:13:11 +02:00
041a341879
Merge branch 'issue-242' 2021-09-25 00:19:51 +02:00
15dd810d67
Get rid of concurrent-output
Also improve some NO_COLOR foo.
2021-09-24 23:49:50 +02:00
fa523d590e
Add ListAvailable to ListCriteria 2021-09-24 20:51:29 +02:00
aece305003
Move logger stuff to logger module 2021-09-23 12:53:01 +02:00
ef8da9bcec
Make sure NO_COLOR also applies to logging 2021-09-23 12:16:49 +02:00
d5b41683ca
Improve HLS compile 2021-09-20 22:24:20 +02:00
31a523755f
Remove solus support 2021-09-20 19:42:06 +02:00
f90741f4d3
Implement compiling HLS from source 2021-09-19 22:04:32 +02:00
4767f3db5b
Implement ghcup unset 2021-09-19 14:17:55 +02:00
c431c0ae00
Implement GPG verification wrt #236 2021-09-18 21:51:19 +02:00
6f61b5dbef
Make hlint shut up 2021-09-18 15:47:54 +02:00
c42c4b64f9
Improve logging 2021-09-18 15:46:53 +02:00
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
ae2031174e
Improve warnAboutHlsCompatibility 2021-09-14 12:36:14 +02:00
Arjun Kathuria
8fc128e89b move some code around for better consistency 2021-09-12 09:25:09 +05:30
Chris Smith
737f72f90f Lint fix. 2021-09-11 23:35:39 -04:00
Chris Smith
c3aab65521 Rewording 2021-09-11 23:24:21 -04:00
Chris Smith
972474f79a Add version numbers to error message.
Fixes after formatting changes.
2021-09-11 23:17:14 -04:00
bc64d2ade0 Apply 3 suggestion(s) to 1 file(s) 2021-09-12 03:09:36 +00:00
Chris Smith
eddda55fe6 Fix hlint warnings 2021-09-11 19:57:42 -04:00
Chris Smith
13aca91231 Add a warning when the installed HLS and GHC versions are not compatible.
This is triggered when:

1. The user has just set either the GHC or HLS version.
2. There is an HLS version set (so some GHC version is compatible).
3. There is a GHC version.
4. The HLS version doesn't support that GHC version.

Fixes #234
2021-09-11 19:33:27 -04:00
Arjun Kathuria
6011242eae minor cleanup 2021-09-11 23:23:58 +05:30
Arjun Kathuria
cadb5086e1 Implements --force install for GHC 2021-09-11 23:20:06 +05:30
Arjun Kathuria
10a30bbf38 Implements --force install for Stack 2021-09-11 22:04:54 +05:30
Arjun Kathuria
6ac7a75bab Implements --force install for HLS 2021-09-11 22:04:40 +05:30
Arjun Kathuria
d60f58cf43 simplify checkIfToolInstalled for Cabal 2021-09-07 14:22:21 +05:30
Arjun Kathuria
7a6a119829 Patch for MonadLogger deletion since new rebase 2021-09-07 14:21:24 +05:30
Arjun Kathuria
0f98ec6b78 factor out checkIfCabalInstalled to checkIfToolInstalled 2021-09-07 11:24:28 +05:30
Arjun Kathuria
107fed6e60 refactor nested case statements when installing cabal 2021-09-07 11:23:30 +05:30
Arjun Kathuria
59a9a770a5 implements --force option for cabal installs. 2021-09-07 11:23:26 +05:30
787c927de6
Improve logging, fixes #228 2021-09-06 23:01:49 +02:00
db8207f8b9
Fixup 2021-09-04 16:06:33 +02:00
d2346a543a
Fixup 2021-09-04 15:53:29 +02:00
c54dc05d92
Read build.mk from files at build time 2021-09-04 15:09:14 +02:00
9bdf6bde17
Only consider .diff/.patch for patch files wrt #226 2021-09-04 14:25:24 +02:00
bc80b1048f
Fix debug logs 2021-09-03 21:00:39 +02:00
d61981bc1b
Update doc on ghcupURL 2021-09-02 21:27:31 +02:00
d98e54a743
Drop yaml/libyaml 2021-08-30 23:36:11 +02:00
13143b8e4d
Drop monad-logger 2021-08-30 23:36:11 +02:00
a269b60282
Remove extra 2021-08-29 22:37:16 +02:00
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
e38bd61066
Fixup merge 2021-08-26 20:16:40 +02:00
b086261c3c
Merge remote-tracking branch 'origin/merge-requests/149' 2021-08-26 20:12:19 +02:00
8c098d4e17
Add solus in getLinuxDistro 2021-08-26 20:09:48 +02:00
14fc6b7281
Remove string-interpolate wrt #212 2021-08-25 18:54:58 +02:00
9d6e469f79
Add solus support 2021-08-25 13:51:34 +02:00
f8cfcd4038
Get rid of tar 2021-08-25 11:48:30 +02:00
Arjun Kathuria
df758d828b swap checkFileAlreadyExists with throwIfFileAlreadyExists 2021-08-24 20:39:07 +05:30
bfc50e269c
Show a warning if xattr can't be executed 2021-08-24 15:34:35 +02:00
8247c0b00b
Add more doctests 2021-08-24 10:51:39 +02:00
951e676bee
Fix header reading wrt #213 2021-08-23 23:16:32 +02:00
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
e9fdc073c6
Fix --flavor 2021-08-11 16:19:52 +02:00
57c791106b
Fixup rest of the PR 2021-08-11 16:19:31 +02:00
fcba151fad
Merge remote-tracking branch 'origin/merge-requests/134' 2021-08-11 14:20:04 +02:00
3b24f503d1
Fixup rest of the PR 2021-08-11 13:54:02 +02:00
bd18fd9aa1
Merge remote-tracking branch 'origin/merge-requests/127' 2021-08-11 12:28:48 +02:00
Arjun Kathuria
c2c5625685 implements checking if file already exists for Cabal installs 2021-08-11 10:33:08 +05:30
Arjun Kathuria
ce6fb0bb1e Adds new Error type FileAlreadyExistsError 2021-08-11 10:28:30 +05:30
Arjun Kathuria
dcfb3afdad Revert "implements isolated install sanity-checking for Cabal installs"
This reverts commit 300cfd3ba6.
2021-08-11 09:46:42 +05:30
Arjun Kathuria
300cfd3ba6 implements isolated install sanity-checking for Cabal installs 2021-08-10 20:14:46 +05:30
Arjun Kathuria
bb430fa0b7 Adds the sanity check function for isolated installs 2021-08-10 20:12:14 +05:30
Arjun Kathuria
80fa7965a4 Adds new Error type IsolatedDirNotEmpty 2021-08-10 20:11:32 +05:30
Arjun Kathuria
d1735bc446 adds toolchainSanityChecks for isolated installs too in installGHCBindist function. 2021-08-10 19:53:41 +05:30
dbf1d6f420
Fix unneeded dist files being installed along with GHC 2021-08-10 15:58:40 +02:00
0a0fbd0cb6
Merge branch 'fix-metadata-download' 2021-08-07 19:26:26 +02:00
6dfc04a9f6
Fix metadata file read in --offline mode 2021-08-07 18:31:41 +02:00
72133d0002
Rather skip copying to cache dir if scheme is file:// 2021-08-07 10:24:08 +02:00
6e07e9e56b
Skip copying metadata if source and destination match 2021-08-07 09:55:45 +02:00
e903aeb555
Skip cached metadata when url starts with file:// 2021-08-07 09:54:26 +02:00
2792f6f4b6
Fix error handling when we can't find a filename 2021-08-06 19:45:59 +02:00
Arjun Kathuria
2c6d0382cf adds isolate install feature to compiled ghc command 2021-08-04 16:08:12 +05:30
Arjun Kathuria
e1bec789b0 updates Bindist functions as per https://gitlab.haskell.org/haskell/ghcup-hs/-/merge_requests/127#note_366702 2021-08-03 18:08:54 +05:30
Arjun Kathuria
5683493cae rename some auxiliary functions to their "unpacked" versions 2021-08-03 18:08:54 +05:30
Arjun Kathuria
ae5e213b59 deletes installStackBinIsolated function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
911089f334 updates usages of new installStackBin across files 2021-08-03 18:08:54 +05:30
Arjun Kathuria
6b89646c1e update installStackBindist to take a "Maybe FilePath" argument for isolated installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
960d5ce79f deletes installHLSBinIsolated function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
90ed0895d6 updates usages of installHLSBin across files 2021-08-03 18:08:54 +05:30
Arjun Kathuria
7471f4f4dc update installHLSBindist to take a "Maybe FilePath" argument for isolated installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
781cf8eed5 Delete installCabalBinIsolated function. 2021-08-03 18:08:54 +05:30
Arjun Kathuria
236da31af6 updates usages of new installCabalBindist across files. 2021-08-03 18:08:54 +05:30
Arjun Kathuria
1f760af880 update installCabalBindist to take a "Maybe FilePath" argument for isolated installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
62d03b776b remove installGHCBinIsolated function. 2021-08-03 18:08:54 +05:30
Arjun Kathuria
37ea18a0d8 updates usages of new installGHCBindist and related installGHCBin 2021-08-03 18:08:54 +05:30
Arjun Kathuria
083dc59a8f update installGhcBindist to take a "Maybe FilePath" to work with isolated installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
a45d069cad Adds a log to notify where the isolated ghc is being installed by the tool 2021-08-03 18:08:54 +05:30
Arjun Kathuria
fdbcd4fafd Adds isolated installs to Stack install 2021-08-03 18:08:54 +05:30
Arjun Kathuria
f3c1c925ed updates installStack' usage in installStackBindist function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
8f6a7ba39c factor out installStack' function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
f212eb4570 Adds isolated install to HLS installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
0d118e2fe1 update installHLS' usage in installHLSBindist 2021-08-03 18:08:54 +05:30
Arjun Kathuria
c0f46ef81f Factor out installHLS' 2021-08-03 18:08:54 +05:30
Arjun Kathuria
476513b0a7 Adds isolate install functionality to 'Cabal' tool installs 2021-08-03 18:08:54 +05:30
Arjun Kathuria
9a511669a8 use the new factored out installCabal' in installCabalBindist function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
a16a25a3cd factor out installCabal' from installCabalBindist, to be shared with installCabalBinIsolated function 2021-08-03 18:08:54 +05:30
Arjun Kathuria
8666fcd120 adds rudimentary isolate capability to ghcup install ghc command 2021-08-03 18:08:54 +05:30
vglfr
1cfff674b7
Implement config CLI MVP 2021-08-03 09:09:47 +03:00
53ca60596d
Fix nuclear order 2021-07-29 11:51:47 +02:00
21d30cd8ce
Fix GHCup showing up twice in list 2021-07-28 22:48:28 +02:00
b38a569124
Bump to 0.1.16.1 2021-07-28 22:36:59 +02:00
442ddfd4e4
Bump ghcup metadata, because new GHC versions may have different bin/ layout 2021-07-28 20:08:20 +02:00
5a34191b88
Fix listTools to always show currently installed GHCup 2021-07-27 22:33:35 +02:00
d3e3ebd63f
Merge branch 'fix-ghcToolFiles' 2021-07-26 21:25:00 +02:00
5837e04e6e
Cleanup 2021-07-26 18:13:57 +02:00
2774f026e8
Merge branch 'issue-150' 2021-07-26 17:44:37 +02:00
fdf45e0fe6
Do etags hashing wrt #193 2021-07-25 23:15:59 +02:00
3bdc82c99b
Redo file handling wrt #165 and #187 2021-07-22 17:44:03 +02:00
1c2cf98850
Fix file/dir removal on windows, fixes #165 2021-07-21 20:50:58 +02:00
a4a7f73fb7
Allow to use Hadrian as build system, fixes #35 2021-07-20 23:51:31 +02:00
9e181b8820
Allow passing "flavor" to 'ghcup compile ghc'
Fixes #183
2021-07-20 13:39:39 +02:00
a6108f8319
Fix listVersion wrt #183 2021-07-20 11:54:14 +02:00
4ed72fb517
Preserve mtimes on unpacked GHC tarballs on windows wrt #187 2021-07-19 23:33:01 +02:00
3caf91c640
Fix ensureGlobalTools 2021-07-19 19:08:43 +02:00
eaad2caf25
Add prefetch command 2021-07-19 16:51:40 +02:00
6143cdf2e0
Add --offline switch wrt #186 2021-07-19 13:49:24 +02:00
2c7176d998
Use LabelOptic and add LeanAppState
Wrt #186
2021-07-18 14:39:49 +02:00
42134fd2a5
Fix whereIsTool for cross 2021-07-15 22:38:42 +02:00
bc85a7d9c3
Fix cross installation
See https://gitlab.haskell.org/ghc/ghc/-/issues/14297
2021-07-15 20:32:09 +02:00
f04708e8ae
Speed up 'whereis' subcommand wrt #179 2021-07-15 20:01:00 +02:00
ec98826e6d
Fix installStackBindist 2021-07-12 22:15:45 +02:00
227f3acaa5
Implement 'whereis' subcommand, fixes #173 2021-07-12 17:09:18 +02:00
5cf297a4d2
Clarify stack postinstall message wrt #153 2021-07-11 15:09:16 +02:00
d86f84eef4
Improve logging with newlines 2021-07-11 14:34:05 +02:00
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
abbe51614d
Improve uninstallation on windows wrt #150 2021-07-07 23:19:50 +02:00
0ad5dc4583
Fix CI 2021-07-03 16:51:58 +02:00
7189998f3b
Cleanup rmGhcupDirs a bit 2021-07-03 11:25:49 +02:00
8e820c6e89
Clean up and fix nuke command 2021-07-03 11:15:37 +02:00
Arjun Kathuria
61019ecd49 Adds reporting remaining leftover files sorted by Depth. 2021-06-29 14:31:13 +05:30
Arjun Kathuria
bed06d1334 make reported leftover file paths absolute 2021-06-29 08:56:57 +05:30
Arjun Kathuria
a3b11f21bb change logWarn to logDebug in "rmghcup / handlePathNotPresent" function 2021-06-28 19:35:48 +05:30
Arjun Kathuria
1dfe5cfecf updates path equating (which may fail) in "rmGhcup" function. 2021-06-28 13:56:20 +05:30
Arjun Kathuria
8e4550657e couple of windows indentation fixes in source files 2021-06-27 00:25:55 +05:30
Arjun Kathuria
aee7fa52c3 warn user if current running ghcup exec is in non-standard location 2021-06-26 23:58:38 +05:30
Arjun Kathuria
d166cc84a1 change type of rmGhcup fn from "Excepts '[NotInstalled] m ()" to m () 2021-06-26 23:26:31 +05:30
Arjun Kathuria
bb7229d224 Adds descriptive comments in rmGhcupDir explaing silent deletions and
leftover reporting.
2021-06-26 22:09:32 +05:30
Arjun Kathuria
708cd5ead9 Fix a minor typo in some conditional windows code. 2021-06-26 21:59:15 +05:30
Arjun Kathuria
395aeb415d change return type of rmGhcupDirs to m [Filepath] from m () 2021-06-26 21:56:07 +05:30