Accept up2date package parameter
All checks were successful
Build / audit (push) Successful in 16m10s
Build / test (push) Successful in 16m35s

This commit is contained in:
2023-12-11 08:14:55 +01:00
parent e9504fb8e5
commit 6a063b2cc4
7 changed files with 29 additions and 135 deletions

View File

@ -6,6 +6,7 @@ import Data.Char (isNumber)
import Control.Applicative (Applicative(liftA2))
import Data.List.NonEmpty (NonEmpty(..))
import qualified Data.List.NonEmpty as NonEmpty
import Control.Monad.Catch (MonadThrow(..))
import Control.Monad.IO.Class (MonadIO(..))
import Data.Maybe (fromJust)
import qualified Data.Map as Map
@ -250,8 +251,13 @@ autoUpdatable =
}
]
up2Date :: SlackBuilderT ()
up2Date = for_ autoUpdatable go
up2Date :: Maybe Text -> SlackBuilderT ()
up2Date = \case
Nothing -> for_ autoUpdatable go
Just packageName
| Just foundPackage <- find ((packageName ==) . getField @"name") autoUpdatable ->
go foundPackage
| otherwise -> throwM $ UpdaterNotFound packageName
where
go package = getAndLogLatest package
>>= mapM_ (updatePackageIfRequired package)
@ -427,10 +433,10 @@ main = do
maybe (pure ()) Text.IO.putStrLn latestVersion
where
executeCommand = \case
CategoryCommand _packageName -> do
CategoryCommand -> do
repository' <- SlackBuilderT $ asks repository
categories <- liftIO $ findCategory repository'
liftIO $ print $ splitFileName . makeRelative repository' <$> categories
pure Nothing
CheckCommand -> check >> pure Nothing
Up2DateCommand -> up2Date >> pure Nothing
Up2DateCommand packageName -> up2Date packageName >> pure Nothing

View File

@ -16,13 +16,14 @@ import Options.Applicative
, info
, fullDesc
, subparser
, command,
, command
, optional
)
data SlackBuilderCommand
= CategoryCommand Text
= CategoryCommand
| CheckCommand
| Up2DateCommand
| Up2DateCommand (Maybe Text)
data PackagistArguments = PackagistArguments
{ vendor :: Text
@ -49,7 +50,7 @@ slackBuilderCommand = subparser
<> command "check" (info checkCommand mempty)
<> command "up2date" (info up2DateCommand mempty)
where
categoryCommand = CategoryCommand
<$> argument str (metavar "PKGNAM")
categoryCommand = pure CategoryCommand
checkCommand = pure CheckCommand
up2DateCommand = pure Up2DateCommand
up2DateCommand = Up2DateCommand
<$> optional (argument str (metavar "PKGNAM"))