packages feed

hsdev-0.1.6.3: tools/hshayoo.hs

module Main (
	main
	) where

import Data.Maybe

import HsDev.Tools.Hayoo

import Tool

data HayooOpts = HayooOpts String Int Int

hayooOpts :: Parser HayooOpts
hayooOpts = HayooOpts <$>
	strArgument (help "hayoo query") <*>
	(option auto (long "page" <> short 'p' <> help "page number (0 by default") <|> pure 0) <*>
	(option auto (long "pages" <> short 'n' <> help "pages count (1 by default") <|> pure 1)

main :: IO ()
main = toolMain "hshayoo" "hayoo search" hayooOpts $ \(HayooOpts q page pages) -> printExceptT $ printResult $
	liftM concat $ forM [page .. page + pred pages] $ \i ->
		liftM (mapMaybe hayooAsDeclaration . resultResult) $ hayoo q (Just i)