Move gh check to the Haskell binary
This commit is contained in:
10
app/Main.hs
10
app/Main.hs
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user