Compare commits
1 Commits
issue-797
...
jfs-and-wi
| Author | SHA1 | Date | |
|---|---|---|---|
|
2b1599c234
|
@@ -335,7 +335,7 @@ ghcSet mtarget = do
|
||||
getInstalledGHCs :: (MonadReader env m, HasDirs env, MonadIO m) => m [Either FilePath GHCTargetVersion]
|
||||
getInstalledGHCs = do
|
||||
ghcdir <- ghcupGHCBaseDir
|
||||
fs <- liftIO $ hideErrorDef [NoSuchThing] [] $ listDirectoryDirs (fromGHCupPath ghcdir)
|
||||
fs <- liftIO $ hideErrorDef [NoSuchThing] [] $ listDirectory (fromGHCupPath ghcdir)
|
||||
forM fs $ \f -> case parseGHCupGHCDir f of
|
||||
Right r -> pure $ Right r
|
||||
Left _ -> pure $ Left f
|
||||
@@ -438,7 +438,7 @@ getInstalledHLSs = do
|
||||
Nothing -> pure $ Left f
|
||||
|
||||
hlsdir <- ghcupHLSBaseDir
|
||||
fs <- liftIO $ hideErrorDef [NoSuchThing] [] $ listDirectoryDirs (fromGHCupPath hlsdir)
|
||||
fs <- liftIO $ hideErrorDef [NoSuchThing] [] $ listDirectory (fromGHCupPath hlsdir)
|
||||
new <- forM fs $ \f -> case parseGHCupHLSDir f of
|
||||
Right r -> pure $ Right r
|
||||
Left _ -> pure $ Left f
|
||||
@@ -626,7 +626,7 @@ hlsInternalServerScripts ver mghcVer = do
|
||||
dir <- ghcupHLSDir ver
|
||||
let bdir = fromGHCupPath dir </> "bin"
|
||||
fmap (bdir </>) . filter (\f -> maybe True (\gv -> ("-" <> T.unpack (prettyVer gv)) `isSuffixOf` f) mghcVer)
|
||||
<$> liftIO (listDirectoryFiles bdir)
|
||||
<$> liftIO (listDirectory bdir)
|
||||
|
||||
-- | Get all binaries for a hls version from the ~/.ghcup/hls/<ver>/lib/haskell-language-server-<ver>/bin directory, if any.
|
||||
-- Returns the full path.
|
||||
@@ -639,7 +639,7 @@ hlsInternalServerBinaries ver mghcVer = do
|
||||
let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-.*$|] :: ByteString)
|
||||
(Just bdir) <- fmap headMay $ liftIO $ expandFilePath [Left (dir </> "lib"), Right regex, Left "bin"]
|
||||
fmap (bdir </>) . filter (\f -> maybe True (\gv -> ("-" <> T.unpack (prettyVer gv)) `isSuffixOf` f) mghcVer)
|
||||
<$> liftIO (listDirectoryFiles bdir)
|
||||
<$> liftIO (listDirectory bdir)
|
||||
|
||||
-- | Get all libraries for a hls version from the ~/.ghcup/hls/<ver>/lib/haskell-language-server-<ver>/lib/<ghc-ver>/
|
||||
-- directory, if any.
|
||||
@@ -652,7 +652,7 @@ hlsInternalServerLibs ver ghcVer = do
|
||||
dir <- fromGHCupPath <$> ghcupHLSDir ver
|
||||
let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-.*$|] :: ByteString)
|
||||
(Just bdir) <- fmap headMay $ liftIO $ expandFilePath [Left (dir </> "lib"), Right regex, Left ("lib" </> T.unpack (prettyVer ghcVer))]
|
||||
fmap (bdir </>) <$> liftIO (listDirectoryFiles bdir)
|
||||
fmap (bdir </>) <$> liftIO (listDirectory bdir)
|
||||
|
||||
|
||||
-- | Get the wrapper binary for an hls version, if any.
|
||||
@@ -936,7 +936,7 @@ ghcToolFiles ver = do
|
||||
whenM (fmap not $ ghcInstalled ver)
|
||||
(throwE (NotInstalled GHC ver))
|
||||
|
||||
files <- liftIO (listDirectoryFiles bindir >>= filterM (doesFileExist . (bindir </>)))
|
||||
files <- liftIO (listDirectory bindir >>= filterM (doesFileExist . (bindir </>)))
|
||||
pure (getUniqueTools . groupToolFiles . fmap (dropSuffix exeExt) $ files)
|
||||
|
||||
where
|
||||
|
||||
@@ -42,9 +42,6 @@ module GHCup.Utils.Dirs
|
||||
, removeDirectoryRecursive
|
||||
, removePathForcibly
|
||||
|
||||
, listDirectoryFiles
|
||||
, listDirectoryDirs
|
||||
|
||||
-- System.Directory re-exports
|
||||
, createDirectory
|
||||
, createDirectoryIfMissing
|
||||
@@ -133,7 +130,7 @@ import Data.Maybe
|
||||
import Data.Versions
|
||||
import GHC.IO.Exception ( IOErrorType(NoSuchThing) )
|
||||
import Haskus.Utils.Variant.Excepts
|
||||
import Optics hiding ( uncons )
|
||||
import Optics
|
||||
import Safe
|
||||
import System.Directory hiding ( removeDirectory
|
||||
, removeDirectoryRecursive
|
||||
@@ -532,29 +529,6 @@ cleanupTrash = do
|
||||
) $ liftIO $ removePathForcibly (recycleDir `appendGHCupPath` fp))
|
||||
|
||||
|
||||
-- | List *actual files* in a directory, ignoring empty files and a couple
|
||||
-- of blacklisted files, such as '.DS_Store' on mac.
|
||||
listDirectoryFiles :: FilePath -> IO [FilePath]
|
||||
listDirectoryFiles fp = do
|
||||
listDirectory fp >>= filterM (doesFileExist . (fp </>)) <&> filter (\fp' -> not (isHidden fp') && not (isBlacklisted fp'))
|
||||
|
||||
-- | List *actual directories* in a directory, ignoring empty directories and a couple
|
||||
-- of blacklisted files, such as '.DS_Store' on mac.
|
||||
listDirectoryDirs :: FilePath -> IO [FilePath]
|
||||
listDirectoryDirs fp = do
|
||||
listDirectory fp >>= filterM (doesDirectoryExist . (fp </>)) <&> filter (\fp' -> not (isHidden fp') && not (isBlacklisted fp'))
|
||||
|
||||
isHidden :: FilePath -> Bool
|
||||
isHidden fp'
|
||||
| isWindows = False
|
||||
| Just ('.', _) <- uncons fp' = True
|
||||
| otherwise = False
|
||||
|
||||
isBlacklisted :: FilePath -> Bool
|
||||
{- HLINT ignore "Use ==" -}
|
||||
isBlacklisted fp' = fp' `elem` [".DS_Store"]
|
||||
|
||||
|
||||
|
||||
-- System.Directory re-exports with GHCupPath
|
||||
|
||||
|
||||
@@ -195,8 +195,8 @@
|
||||
"dlUri": "https:g"
|
||||
},
|
||||
"viTags": [
|
||||
"base-3.2.2",
|
||||
"Prerelease",
|
||||
"base-6.5.1",
|
||||
"base-2.2.5",
|
||||
"𪔊\u0007\u0015"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -271,7 +271,7 @@
|
||||
"viPreCompile": "thzbtjc",
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"old",
|
||||
"LatestPrerelease",
|
||||
"old"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -993,8 +993,8 @@
|
||||
"Latest",
|
||||
"Recommended",
|
||||
"Prerelease",
|
||||
"base-2.3.5",
|
||||
"\u0005EL"
|
||||
"base-6.3.2",
|
||||
"base-6.3.1"
|
||||
],
|
||||
"viTestDL": null
|
||||
},
|
||||
@@ -1140,9 +1140,9 @@
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"base-2.1.2",
|
||||
"base-5.2.1",
|
||||
"old"
|
||||
"LatestPrerelease",
|
||||
"base-5.6.5",
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -5,
|
||||
@@ -1584,13 +1584,13 @@
|
||||
"dlUri": "https:l"
|
||||
},
|
||||
"viTags": [
|
||||
"base-1.1.6",
|
||||
"LatestPrerelease",
|
||||
"Latest",
|
||||
"old",
|
||||
"base-4.6.2",
|
||||
"base-4.2.4",
|
||||
"l𠹟F",
|
||||
"old",
|
||||
"Recommended"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 0,
|
||||
@@ -1897,7 +1897,7 @@
|
||||
"old",
|
||||
"Latest",
|
||||
"Recommended",
|
||||
"Prerelease"
|
||||
"base-1.3.3"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 5,
|
||||
@@ -2348,10 +2348,10 @@
|
||||
"dlUri": "http:"
|
||||
},
|
||||
"viTags": [
|
||||
"t\u001e\u001aB8",
|
||||
"base-5.5.1",
|
||||
"old",
|
||||
"",
|
||||
"old"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -4,
|
||||
@@ -3337,9 +3337,9 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Prerelease",
|
||||
"base-5.6.1",
|
||||
"base-3.3.3",
|
||||
"base-3.2.1",
|
||||
"old",
|
||||
"*𭡕3i",
|
||||
"base-5.1.4",
|
||||
"Latest",
|
||||
":ᄻ["
|
||||
],
|
||||
@@ -3767,9 +3767,9 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Prerelease",
|
||||
"base-2.4.6",
|
||||
"base-4.1.3",
|
||||
"base-4.4.6"
|
||||
"base-2.2.4",
|
||||
"\u0008",
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": null
|
||||
},
|
||||
@@ -3901,8 +3901,8 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"Latest",
|
||||
"base-3.1.4",
|
||||
"base-3.3.5",
|
||||
"LatestPrerelease",
|
||||
"Recommended",
|
||||
"Prerelease",
|
||||
"old",
|
||||
@@ -4030,8 +4030,8 @@
|
||||
"Recommended",
|
||||
"Prerelease",
|
||||
"Recommended",
|
||||
"Latest",
|
||||
"old"
|
||||
"base-2.4.6",
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": null
|
||||
},
|
||||
@@ -4212,7 +4212,7 @@
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"X\u001d^Y",
|
||||
"base-2.3.5"
|
||||
"base-3.5.1"
|
||||
],
|
||||
"viTestDL": null
|
||||
},
|
||||
@@ -4497,10 +4497,10 @@
|
||||
"viTags": [
|
||||
"old",
|
||||
"Latest",
|
||||
"base-5.6.4",
|
||||
"oj&,m",
|
||||
"\u0019\u0007",
|
||||
"Recommended",
|
||||
"Latest"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": null
|
||||
}
|
||||
@@ -4718,12 +4718,12 @@
|
||||
"dlUri": "http:k"
|
||||
},
|
||||
"viTags": [
|
||||
"base-5.3.4",
|
||||
"old",
|
||||
"Recommended",
|
||||
"Recommended",
|
||||
"base-4.3.5",
|
||||
"Latest",
|
||||
"Rs;h~"
|
||||
"base-3.5.1",
|
||||
"LatestPrerelease",
|
||||
"base-3.3.3"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -3,
|
||||
@@ -4928,12 +4928,12 @@
|
||||
"viPreCompile": null,
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"base-1.5.5",
|
||||
"LatestPrerelease",
|
||||
"Latest",
|
||||
"Latest",
|
||||
"old",
|
||||
"Latest",
|
||||
"base-3.6.4",
|
||||
"LatestPrerelease",
|
||||
"old"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -5027,12 +5027,12 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"base-3.6.5",
|
||||
"base-3.4.1",
|
||||
"old",
|
||||
"base-1.6.1",
|
||||
"𬰗𗛞Q#",
|
||||
"",
|
||||
"Prerelease",
|
||||
"base-5.1.4"
|
||||
"base-6.6.2"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 6,
|
||||
@@ -5368,12 +5368,12 @@
|
||||
"dlUri": "http:rjevxi"
|
||||
},
|
||||
"viTags": [
|
||||
"base-1.6.1",
|
||||
"U:3\u000fd",
|
||||
"SI🢐",
|
||||
"old",
|
||||
"𤔄\u001a~F",
|
||||
"Latest",
|
||||
"base-4.5.4"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": null,
|
||||
@@ -5697,10 +5697,10 @@
|
||||
"dlUri": "http:viiv"
|
||||
},
|
||||
"viTags": [
|
||||
"base-3.1.6",
|
||||
"base-1.5.6",
|
||||
"Prerelease",
|
||||
"Recommended",
|
||||
")\u0005\u0015"
|
||||
"base-1.3.2"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 5,
|
||||
@@ -7482,7 +7482,7 @@
|
||||
"Recommended",
|
||||
"old",
|
||||
"old",
|
||||
"Latest"
|
||||
"(>"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": null,
|
||||
@@ -8175,11 +8175,11 @@
|
||||
"dlUri": "http:ndqpk"
|
||||
},
|
||||
"viTags": [
|
||||
"\"5\u0006F",
|
||||
"base-2.1.6",
|
||||
"Recommended",
|
||||
"Prerelease",
|
||||
"LatestPrerelease",
|
||||
"old",
|
||||
"base-3.3.1",
|
||||
"Recommended"
|
||||
],
|
||||
"viTestDL": null
|
||||
@@ -8199,10 +8199,10 @@
|
||||
"dlUri": "https:gqhlp"
|
||||
},
|
||||
"viTags": [
|
||||
"base-4.3.4",
|
||||
"Recommended",
|
||||
"old",
|
||||
"base-4.1.4"
|
||||
"Recommended",
|
||||
"LatestPrerelease",
|
||||
"base-6.5.6"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": null,
|
||||
@@ -8400,7 +8400,7 @@
|
||||
"\u0001",
|
||||
"Prerelease",
|
||||
"Prerelease",
|
||||
"base-3.6.3",
|
||||
"1Aⳃ",
|
||||
"Latest"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -8427,13 +8427,13 @@
|
||||
"dlUri": "http:pvmi"
|
||||
},
|
||||
"viTags": [
|
||||
"old",
|
||||
"old",
|
||||
"Latest",
|
||||
"LatestPrerelease",
|
||||
"LatestPrerelease",
|
||||
"LatestPrerelease",
|
||||
"old",
|
||||
")",
|
||||
"Recommended",
|
||||
"old"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -2,
|
||||
@@ -8941,9 +8941,9 @@
|
||||
"dlUri": "http:oth"
|
||||
},
|
||||
"viTags": [
|
||||
"base-4.1.5",
|
||||
"\u001c\u001f",
|
||||
"フ",
|
||||
"base-1.4.5"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -5,
|
||||
@@ -10152,9 +10152,9 @@
|
||||
"viPreCompile": "deajwn",
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"base-6.4.5",
|
||||
"base-5.1.1",
|
||||
"base-4.4.6",
|
||||
"base-1.4.3",
|
||||
"LatestPrerelease",
|
||||
"LatestPrerelease",
|
||||
"Latest",
|
||||
"Latest",
|
||||
"Prerelease",
|
||||
@@ -10479,11 +10479,11 @@
|
||||
"viPreCompile": "",
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"Prerelease",
|
||||
"s",
|
||||
"Recommended",
|
||||
"old",
|
||||
"N\u001b",
|
||||
"base-5.5.2",
|
||||
"LatestPrerelease",
|
||||
"",
|
||||
"Recommended"
|
||||
],
|
||||
@@ -10716,8 +10716,8 @@
|
||||
"viSourceDL": null,
|
||||
"viTags": [
|
||||
"Recommended",
|
||||
"base-3.6.1",
|
||||
"base-4.3.3",
|
||||
"base-4.3.2",
|
||||
"base-2.3.4",
|
||||
"Recommended",
|
||||
"Latest"
|
||||
],
|
||||
@@ -11178,8 +11178,8 @@
|
||||
"viTags": [
|
||||
"Prerelease",
|
||||
"Latest",
|
||||
"base-5.3.2",
|
||||
"[3憥"
|
||||
"5𨥶$𬰇",
|
||||
"base-3.1.6"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 1,
|
||||
@@ -11698,7 +11698,7 @@
|
||||
"viTags": [
|
||||
"𥭏}\u000e",
|
||||
"\u0007/",
|
||||
"base-6.5.3",
|
||||
"LatestPrerelease",
|
||||
"Latest"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -13992,7 +13992,7 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Prerelease",
|
||||
"base-4.6.2",
|
||||
"base-7.5.2",
|
||||
"3g7",
|
||||
"Recommended"
|
||||
],
|
||||
@@ -14463,10 +14463,10 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Recommended",
|
||||
"base-3.4.3",
|
||||
"base-4.3.5",
|
||||
"LatestPrerelease",
|
||||
"base-1.2.2",
|
||||
"Latest",
|
||||
"base-5.4.2"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": null,
|
||||
@@ -14650,8 +14650,8 @@
|
||||
},
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"",
|
||||
"base-3.5.6"
|
||||
"base-5.6.2",
|
||||
"old"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": -1,
|
||||
@@ -14735,11 +14735,11 @@
|
||||
"dlUri": "http:koxgqu"
|
||||
},
|
||||
"viTags": [
|
||||
"base-6.3.3",
|
||||
"base-2.4.2",
|
||||
"Latest",
|
||||
"base-3.1.6",
|
||||
"",
|
||||
"base-4.4.6",
|
||||
"B\u0004",
|
||||
"old",
|
||||
"LatestPrerelease",
|
||||
"base-4.5.5",
|
||||
"Latest"
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -15054,12 +15054,12 @@
|
||||
"dlUri": "http:s"
|
||||
},
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"base-5.1.1",
|
||||
"𫠼",
|
||||
"9or𰉒",
|
||||
"old",
|
||||
"base-2.4.4",
|
||||
"Recommended",
|
||||
"OHk(\u0007",
|
||||
"old"
|
||||
"LatestPrerelease"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 1,
|
||||
@@ -15251,10 +15251,10 @@
|
||||
"viTags": [
|
||||
"Latest",
|
||||
"Latest",
|
||||
"Latest",
|
||||
"old",
|
||||
"𮧬",
|
||||
"old",
|
||||
"old",
|
||||
"LatestPrerelease",
|
||||
""
|
||||
],
|
||||
"viTestDL": {
|
||||
@@ -15615,11 +15615,11 @@
|
||||
"dlUri": "https:oat"
|
||||
},
|
||||
"viTags": [
|
||||
"base-6.6.4",
|
||||
"Recommended",
|
||||
"",
|
||||
"old",
|
||||
"Recommended",
|
||||
"old",
|
||||
"Prerelease"
|
||||
"base-6.3.4"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": null,
|
||||
@@ -15904,13 +15904,13 @@
|
||||
"dlUri": "https:rwxmrn"
|
||||
},
|
||||
"viTags": [
|
||||
"base-7.2.1",
|
||||
"Prerelease",
|
||||
"X",
|
||||
"Latest",
|
||||
"z 7\u0008N\u000e",
|
||||
"old",
|
||||
"\u0006g"
|
||||
"Prerelease",
|
||||
"base-2.5.3",
|
||||
"Latest",
|
||||
"base-5.3.3",
|
||||
"old",
|
||||
"base-7.2.1"
|
||||
],
|
||||
"viTestDL": {
|
||||
"dlCSize": 5,
|
||||
|
||||
Reference in New Issue
Block a user