Compare commits

...

3 Commits

Author SHA1 Message Date
2bedba1205 Create subcommand for generating HLS metadata 2022-03-01 01:02:22 +01:00
3c9c41f9a7 Update aarch64-darwin-ghcup-0.1.17.5 ghcup binary
Stripped binaries make problems on M1 apparently,
due to codesigning.
So we re-upload non-stripped ones.
2022-02-26 22:00:30 +01:00
b1d0995221 Update signatures 2022-02-26 18:46:26 +01:00
16 changed files with 120 additions and 8 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1904,8 +1904,8 @@ ghcupDownloads:
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5
dlHash: e25730a1b6a95bf4548f92cd84906955474a9243445a636b8d63e5a89a557db2
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
A_ARM:
Linux_UnknownLinux:
unknown_versioning:

Binary file not shown.

View File

@@ -2065,8 +2065,8 @@ ghcupDownloads:
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5
dlHash: e25730a1b6a95bf4548f92cd84906955474a9243445a636b8d63e5a89a557db2
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
A_ARM:
Linux_UnknownLinux:
unknown_versioning:

Binary file not shown.

View File

@@ -2532,8 +2532,8 @@ ghcupDownloads:
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5
dlHash: e25730a1b6a95bf4548f92cd84906955474a9243445a636b8d63e5a89a557db2
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
A_ARM:
Linux_UnknownLinux:
unknown_versioning:

Binary file not shown.

View File

@@ -2532,8 +2532,8 @@ ghcupDownloads:
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5
dlHash: e25730a1b6a95bf4548f92cd84906955474a9243445a636b8d63e5a89a557db2
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
A_ARM:
Linux_UnknownLinux:
unknown_versioning:

Binary file not shown.

101
ghcup-gen/Generate.hs Normal file
View File

@@ -0,0 +1,101 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
module Generate where
import GHCup
import GHCup.Download
import GHCup.Errors
import GHCup.Types
import GHCup.Types.Optics
import GHCup.Utils
import GHCup.Utils.Logger
import GHCup.Utils.Version.QQ
import Codec.Archive
import Control.Applicative
import Control.Exception.Safe
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Reader.Class
import Control.Monad.Trans.Class ( lift )
import Control.Monad.Trans.Reader ( runReaderT )
import Control.Monad.Trans.Resource ( runResourceT
, MonadUnliftIO
)
import Data.Containers.ListUtils ( nubOrd )
import Data.ByteString ( ByteString )
import Data.IORef
import Data.Either
import Data.Maybe
import Data.List
import Data.Map.Strict ( Map )
import Data.Versions
import Haskus.Utils.Variant.Excepts
import Optics
import System.FilePath
import System.Exit
import Text.ParserCombinators.ReadP
import Text.PrettyPrint.HughesPJClass ( prettyShow )
import Text.Regex.Posix
import GHCup.Utils.String.QQ
import qualified Data.ByteString as BS
import qualified Data.Map.Strict as M
import qualified Data.Text as T
import qualified Data.Version as V
import qualified Data.Yaml.Pretty as YAML
import qualified Text.Megaparsec as MP
data GhcHlsVersions = GhcHlsVersions {
}
type HlsGhcVersions = Map Version (Map Architecture (Map Platform Version))
generate :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, MonadUnliftIO m
)
=> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
-> m ExitCode
generate dls _ = do
let hlses = dls M.! HLS
r <- forM hlses $ \(_viArch -> archs) ->
forM archs $ \plats ->
forM plats $ \(head . M.toList -> (_, dli)) -> do
VRight r <- runResourceT . runE
@'[DigestError
, GPGError
, DownloadFailed
, UnknownArchive
, ArchiveResult
] $ do
fp <- liftE $ downloadCached dli Nothing
files <- liftE $ getArchiveFiles fp
let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)$|] :: ByteString)
let ghcs = rights $ MP.parse version' ""
. T.pack
. fromJust
. stripPrefix "haskell-language-server-"
<$> filter (match regex) files
pure ghcs
pure r
liftIO $ BS.putStr $ YAML.encodePretty YAML.defConfig r
pure ExitSuccess

View File

@@ -29,6 +29,7 @@ import System.Environment
import System.Exit
import System.IO ( stderr )
import Text.Regex.Posix
import Generate
import Validate
import Text.PrettyPrint.HughesPJClass ( prettyShow )
@@ -44,6 +45,7 @@ data Options = Options
data Command = ValidateYAML ValidateYAMLOpts
| ValidateTarballs ValidateYAMLOpts TarballFilter
| GenerateHlsGhc ValidateYAMLOpts
data Input
@@ -108,6 +110,12 @@ com = subparser
((ValidateTarballs <$> validateYAMLOpts <*> tarballFilterP) <**> helper)
(progDesc "Validate all tarballs (download and checksum)")
)
<> command
"generate-hls-ghcs"
(info
((GenerateHlsGhc <$> validateYAMLOpts) <**> helper)
(progDesc "Generate a list of HLS-GHC support")
)
)
@@ -137,6 +145,7 @@ main = do
>>= \Options {..} -> case optCommand of
ValidateYAML vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validate dl m)
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validateTarballs tarballFilter dl m)
GenerateHlsGhc vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ generate dl m)
pure ()
where

View File

@@ -23,6 +23,7 @@ source-repository head
executable ghcup-gen
main-is: Main.hs
other-modules: Validate
Generate
default-language: Haskell2010
default-extensions:
DeriveGeneric
@@ -51,6 +52,7 @@ executable ghcup-gen
, ghcup ^>=0.1.17.3
, haskus-utils-variant ^>=3.2
, libarchive ^>=3.0.3.0
, megaparsec ^>=9.0
, mtl ^>=2.2
, optics ^>=0.4
, optparse-applicative >=0.15.1.0 && <0.17