hayoo-cli 0.1.0.1 → 0.1.0.2
raw patch · 3 files changed
+85/−2 lines, 3 files
Files
- CliOptions.hs +29/−0
- HayooTypes.hs +53/−0
- hayoo-cli.cabal +3/−2
+ CliOptions.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE OverloadedStrings #-}++module CliOptions+( parseArguments+, Opts(..)+)+where++import Options.Applicative++data Opts = Opts+ { showInfo :: Bool+ , query :: String }+ deriving Show++parser :: Parser Opts+parser = Opts+ <$> switch+ ( long "info"+ <> short 'i'+ <> help "Show description")+ <*> argument str (metavar "QUERY")++parseArguments :: String -> (Opts -> IO ()) -> IO ()+parseArguments ver = (execParser opts >>=)+ where opts = info (helper <*> parser)+ ( fullDesc+ <> progDesc "Search for query using hayoo."+ <> header ("hayoo - " ++ ver))
+ HayooTypes.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE OverloadedStrings #-}++module HayooTypes+( HayooResult(..)+, HayooResponse(..)+)+where++import Control.Applicative ((<$>), (<*>))+import Control.Monad (mzero)+import Data.Aeson++data HayooResult = HayooResult { resultUri :: String+ , tag :: String+ , resultPackage :: String+ , resultName :: String+ , resultSource :: String+ , resultDescription :: String+ , resultSignature :: String+ , resultModules :: [String]+ , resultScore :: Float+ , resultType :: String+ } deriving (Show)++data HayooResponse = HayooResponse { max :: Int+ , offset :: Int+ , count :: Int+ , result :: [HayooResult]+ } deriving (Show)++instance FromJSON HayooResult where+ parseJSON (Object v) = HayooResult+ <$> v .: "resultUri"+ <*> v .: "tag"+ <*> v .:? "resultPackage" .!= ""+ <*> v .: "resultName"+ <*> v .:? "resultSource" .!= ""+ <*> v .:? "resultDescription" .!= ""+ <*> v .:? "resultSignature" .!= ""+ <*> v .:? "resultModules" .!= []+ <*> v .: "resultScore"+ <*> v .: "resultType"++ parseJSON _ = mzero++instance FromJSON HayooResponse where+ parseJSON (Object v) = HayooResponse+ <$> v .: "max"+ <*> v .: "offset"+ <*> v .: "count"+ <*> v .: "result"++ parseJSON _ = mzero
hayoo-cli.cabal view
@@ -2,7 +2,7 @@ -- see http://haskell.org/cabal/users-guide/ name: hayoo-cli-version: 0.1.0.1+version: 0.1.0.2 synopsis: Hayoo CLI description: Simple console client for hayoo. homepage: https://github.com/Gonzih/hayoo-cli@@ -13,7 +13,8 @@ -- copyright: category: Development build-type: Simple--- extra-source-files:+extra-source-files: HayooTypes.hs+ , CliOptions.hs cabal-version: >=1.10 executable hayoo