Move gh check to the Haskell binary

This commit is contained in:
2023-08-10 12:47:43 +02:00
parent 43ebbc5e67
commit 5a9e87cd5f
6 changed files with 16 additions and 40 deletions

View File

@ -19,10 +19,18 @@ main = do
PackagistCommand packagistArguments ->
latestPackagist packagistArguments
TextCommand textArguments -> latestText textArguments
GhCommand ghArguments -> latestGitHub settings ghArguments (stripPrefix "v")
GhCommand ghArguments@GhArguments{ transform } ->
latestGitHub settings ghArguments $ chooseTransformFunction transform
Text.IO.putStrLn $ fromMaybe "" latestVersion
where
chooseTransformFunction (Just "php") = phpTransform
chooseTransformFunction (Just "rdiff-backup") = Text.stripPrefix "v"
chooseTransformFunction _ = stripPrefix "v"
stripPrefix prefix string = Just
$ fromMaybe string
$ Text.stripPrefix prefix string
phpTransform version
| (majorPrefix, patchVersion) <- Text.breakOnEnd "." version
, majorPrefix == "php-8.2." = Just $ Text.drop (Text.length "php-") version
| otherwise = Nothing

View File

@ -16,7 +16,7 @@ import Options.Applicative
, info
, fullDesc
, subparser
, command
, command, optional
)
data SlackBuilderCommand
@ -32,6 +32,7 @@ data PackagistArguments = PackagistArguments
data GhArguments = GhArguments
{ owner :: Text
, name :: Text
, transform :: Maybe Text
} deriving (Eq, Show)
newtype TextArguments = TextArguments Text
@ -48,6 +49,7 @@ ghArguments :: Parser GhArguments
ghArguments = GhArguments
<$> argument str (metavar "OWNER")
<*> argument str (metavar "NAME")
<*> optional (argument str (metavar "TRANSFORM"))
slackBuilderParser :: ParserInfo SlackBuilderCommand
slackBuilderParser = info slackBuilderCommand fullDesc