Accept up2date package parameter
This commit is contained in:
14
src/Main.hs
14
src/Main.hs
@ -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
|
||||
|
@ -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"))
|
||||
|
Reference in New Issue
Block a user